{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# W3_冯炳驹_124298228"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 第一步：直接调用xgboost内嵌的cv寻找最佳的参数n_estimators"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "from xgboost import XGBClassifier\n",
    "import xgboost as xgb\n",
    "\n",
    "import pandas as pd \n",
    "import numpy as np\n",
    "\n",
    "from sklearn.model_selection import GridSearchCV\n",
    "from sklearn.model_selection import StratifiedKFold\n",
    "\n",
    "from sklearn.metrics import log_loss\n",
    "\n",
    "from matplotlib import pyplot\n",
    "import seaborn as sns\n",
    "%matplotlib inline"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>bathrooms</th>\n",
       "      <th>bedrooms</th>\n",
       "      <th>price</th>\n",
       "      <th>price_bathrooms</th>\n",
       "      <th>price_bedrooms</th>\n",
       "      <th>room_diff</th>\n",
       "      <th>room_num</th>\n",
       "      <th>Year</th>\n",
       "      <th>Month</th>\n",
       "      <th>Day</th>\n",
       "      <th>...</th>\n",
       "      <th>walk</th>\n",
       "      <th>walls</th>\n",
       "      <th>war</th>\n",
       "      <th>washer</th>\n",
       "      <th>water</th>\n",
       "      <th>wheelchair</th>\n",
       "      <th>wifi</th>\n",
       "      <th>windows</th>\n",
       "      <th>work</th>\n",
       "      <th>interest_level</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1.5</td>\n",
       "      <td>3</td>\n",
       "      <td>3000</td>\n",
       "      <td>1200.0</td>\n",
       "      <td>750.000000</td>\n",
       "      <td>-1.5</td>\n",
       "      <td>4.5</td>\n",
       "      <td>2016</td>\n",
       "      <td>6</td>\n",
       "      <td>24</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1.0</td>\n",
       "      <td>2</td>\n",
       "      <td>5465</td>\n",
       "      <td>2732.5</td>\n",
       "      <td>1821.666667</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>3.0</td>\n",
       "      <td>2016</td>\n",
       "      <td>6</td>\n",
       "      <td>12</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>1.0</td>\n",
       "      <td>1</td>\n",
       "      <td>2850</td>\n",
       "      <td>1425.0</td>\n",
       "      <td>1425.000000</td>\n",
       "      <td>0.0</td>\n",
       "      <td>2.0</td>\n",
       "      <td>2016</td>\n",
       "      <td>4</td>\n",
       "      <td>17</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>1.0</td>\n",
       "      <td>1</td>\n",
       "      <td>3275</td>\n",
       "      <td>1637.5</td>\n",
       "      <td>1637.500000</td>\n",
       "      <td>0.0</td>\n",
       "      <td>2.0</td>\n",
       "      <td>2016</td>\n",
       "      <td>4</td>\n",
       "      <td>18</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>1.0</td>\n",
       "      <td>4</td>\n",
       "      <td>3350</td>\n",
       "      <td>1675.0</td>\n",
       "      <td>670.000000</td>\n",
       "      <td>-3.0</td>\n",
       "      <td>5.0</td>\n",
       "      <td>2016</td>\n",
       "      <td>4</td>\n",
       "      <td>28</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>5 rows × 228 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "   bathrooms  bedrooms  price  price_bathrooms  price_bedrooms  room_diff  \\\n",
       "0        1.5         3   3000           1200.0      750.000000       -1.5   \n",
       "1        1.0         2   5465           2732.5     1821.666667       -1.0   \n",
       "2        1.0         1   2850           1425.0     1425.000000        0.0   \n",
       "3        1.0         1   3275           1637.5     1637.500000        0.0   \n",
       "4        1.0         4   3350           1675.0      670.000000       -3.0   \n",
       "\n",
       "   room_num  Year  Month  Day       ...        walk  walls  war  washer  \\\n",
       "0       4.5  2016      6   24       ...           0      0    0       0   \n",
       "1       3.0  2016      6   12       ...           0      0    0       0   \n",
       "2       2.0  2016      4   17       ...           0      0    0       0   \n",
       "3       2.0  2016      4   18       ...           0      0    0       0   \n",
       "4       5.0  2016      4   28       ...           0      0    1       0   \n",
       "\n",
       "   water  wheelchair  wifi  windows  work  interest_level  \n",
       "0      0           0     0        0     0               1  \n",
       "1      0           0     0        0     0               2  \n",
       "2      0           0     0        0     0               0  \n",
       "3      0           0     0        0     0               2  \n",
       "4      0           0     0        0     0               2  \n",
       "\n",
       "[5 rows x 228 columns]"
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# path to where the data lies\n",
    "dpath = './data/'\n",
    "train = pd.read_csv(dpath +\"RentListingInquries_FE_train.csv\")\n",
    "train.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\nrR4AAAAASUVORK5CYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1dea19b7b00>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "sns.countplot(train.interest_level);\n",
    "pyplot.xlabel('interest_level');\n",
    "pyplot.ylabel('Number of occurrences');"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "# drop ids and get labels\n",
    "y_train = train['interest_level']\n",
    "\n",
    "train = train.drop([\"interest_level\"], axis=1)\n",
    "X_train = np.array(train)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "# prepare cross validation\n",
    "kfold = StratifiedKFold(n_splits=5, shuffle=True, random_state=3)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 默认参数，此时学习率为0.1，比较大，观察弱分类数目的大致范围 （采用默认参数配置，看看模型是过拟合还是欠拟合）"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "#直接调用xgboost内嵌的交叉验证（cv），可对连续的n_estimators参数进行快速交叉验证\n",
    "#而GridSearchCV只能对有限个参数进行交叉验证\n",
    "def modelfit(alg, X_train, y_train, cv_folds=None, early_stopping_rounds=10):\n",
    "    xgb_param = alg.get_xgb_params()\n",
    "    xgb_param['num_class'] = 9\n",
    "    \n",
    "    #直接调用xgboost，而非sklarn的wrapper类\n",
    "    xgtrain = xgb.DMatrix(X_train, label = y_train)\n",
    "        \n",
    "    cvresult = xgb.cv(xgb_param, xgtrain, num_boost_round=alg.get_params()['n_estimators'], folds =cv_folds,\n",
    "             metrics='mlogloss', early_stopping_rounds=early_stopping_rounds)\n",
    "  \n",
    "    cvresult.to_csv('1_nestimators.csv', index_label = 'n_estimators')\n",
    "    \n",
    "    #最佳参数n_estimators\n",
    "    n_estimators = cvresult.shape[0]\n",
    "    \n",
    "    # 采用交叉验证得到的最佳参数n_estimators，训练模型\n",
    "    alg.set_params(n_estimators = n_estimators)\n",
    "    alg.fit(X_train, y_train, eval_metric='mlogloss')\n",
    "        \n",
    "    #Predict training set:\n",
    "    #train_predprob = alg.predict_proba(X_train)\n",
    "    #logloss = log_loss(y_train, train_predprob)\n",
    "\n",
    "   #Print model report:\n",
    "   # print (\"logloss of train :\" )\n",
    "   # print logloss"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "#params = {\"objective\": \"multi:softprob\", \"eval_metric\":\"mlogloss\", \"num_class\": 9}\n",
    "xgb1 = XGBClassifier(\n",
    "        learning_rate =0.1,\n",
    "        n_estimators=1000,  #数值大没关系，cv会自动返回合适的n_estimators\n",
    "        max_depth=5,\n",
    "        min_child_weight=1,\n",
    "        gamma=0,\n",
    "        subsample=0.3,\n",
    "        colsample_bytree=0.8,\n",
    "        colsample_bylevel=0.7,\n",
    "        objective= 'multi:softprob',\n",
    "        seed=3)\n",
    "\n",
    "modelfit(xgb1, X_train, y_train, cv_folds = kfold)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1deb43de9e8>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "cvresult = pd.DataFrame.from_csv('1_nestimators.csv')\n",
    "        \n",
    "# plot\n",
    "test_means = cvresult['test-mlogloss-mean']\n",
    "test_stds = cvresult['test-mlogloss-std'] \n",
    "        \n",
    "train_means = cvresult['train-mlogloss-mean']\n",
    "train_stds = cvresult['train-mlogloss-std'] \n",
    "\n",
    "x_axis = range(0, cvresult.shape[0])\n",
    "        \n",
    "pyplot.errorbar(x_axis, test_means, yerr=test_stds ,label='Test')\n",
    "pyplot.errorbar(x_axis, train_means, yerr=train_stds ,label='Train')\n",
    "pyplot.title(\"XGBoost n_estimators vs Log Loss\")\n",
    "pyplot.xlabel( 'n_estimators' )\n",
    "pyplot.ylabel( 'Log Loss' )\n",
    "pyplot.savefig( 'n_estimators4_1.png' )\n",
    "\n",
    "pyplot.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\nauvo4Y9Pbik4z3W/W8XCuXVk8nbxWcHaNzbDkCRJhyPDlCaMqXVVnHzM9FyY+vi7TmbB7DqWrdnJ\nFdcvBeDkY6bx7NbdBffEWr6uieXrCjsIfvlnS5g7vYaavBsPt3V0H4R3MfHkB6xLL34x82fVjvMV\nSZIkJQxTGtHhWq0aqqQkQ031YFOKN519NAvn1PHQ8q18O9vgYt70Ghp3ddLRObi3ak9XL89sai04\n1xXXL2XW1EnMnjq4n2toa3cdGFa1JElSMTBMadQmSsDKZDJMz2tw8cE3H89RMyfzxJqdXHFdUsE6\n+8TZdHb18uy2XWxvHtyLtbWxna2Ng23av3j1Y0yZXEFdTUVu7NGV22lt62KXlawxZbiSJEljzTCl\n/TJSwDocQ1cmk6GmarCC9WenzRtWDXntS46keXcXy9c20to+GJSad3fRvLsr9/j2B58ddv4f3r6C\n4+Y3MKnKv5JjyYqWJEk6kPzmJh0gZxw3c8SA1dcHaza3smpjy16fu2F7Gxu2txWMffnax5lSW0lF\nXiONDdt3u2foIDB0SZKk0TBM6aCYKBWsoUYKWJ+66BSm1VXx1LomfvTrCMDCuXVsa+pgd97Sv46u\nXjp2thec74e3R6757dPMm16TG1u1oYUMmYKmGTo4DF2SJE1shikVlYkQsCrKS5nZMKlgz9RFr34B\nC+fU8ejT27nyxmUAnH3SbEozGTY3trNqw2BVq6u7jzWbd+Ue/+x3q4a9xhXXLSlYMnjPYxvZ0byH\nPlu6jwsDliRJhyfDlFQkMpkMUyZX5h7/2anD92W961XHsKutmyWrd7BxyLLAfG17emjbM9h98A9P\nbOEPTxTeP+t7ty6ntrqcnt7BjoMPPrmVru4+evvsQjjWrGpJknToM0yp6I1mieDqTXvfj3Q4OWZe\nPYvm1nPqsdNzX7o/cv4JNNRWsmpjC9ffvRqAs06YRXtnD0tW7QSgvKxkWJv2LTvbKYxXcNfiDdy1\neEPB2G8fWc/aebvoMWCNC0OXJEnFyzClw8JEWB64N9Pqq1g0t56Skkxu7LzTjwDIhalPXXQKU2oq\neWTlNq77XRK4Tlw4lcryUpp3d7J6Y3LPrEwGhq4E/NNT2/jTU9sKxq66fQUnLZzG5Lx7dEmSJE00\nhikdtiZywBpq4N5ZLzhiSm7s/HMWDKtyXHLhKZSXlbI4buM3D60HoKa6jLaOnoLzbdzeNmyZ4VW3\nr2D21ElkBjMdrW1d6OAYTQULsMolSdIBZJiSlFNRXsqiufVkMuTC1N//xckcMX0yj63azndufgqA\nhXPq2LSzjT1dvbnnjhSwvv7zJ2iorWRWw+BNkHd3dNNvI4yi9nzB7NKLX2yLfkmSMExpgpmoLdr3\nV2VFKTOmDAaii/78BSyYXccfn9rC925ZDsBxR02hu7ePHc17aMmrSDXt6ixo2/7V65cyqbKMhrrB\nZhv3Pb6JFeuaCp63s3UPR8/2C3sxG+1+LqtfkqTDlWFKUiolJRlmT52Ue3zBuYuGfXF+09nz2dXe\nzfJ1TWxr6sgd297ZQ/v2waWDv1+6edj5v/XLJykrzTC1tio39vCKbTTv6qS9s2fY8Tq0GLokSYcD\nw5Q0gkVz6/nRZ19NQ0MNTU1t9PT0WcFK4eRjpg/7kvzmlx1NT28fqza08HT2/llVFaX09fXT3dtX\n0ACjp7efbc2DIey2P64b9hrfvulJZk+bRHlpSW5s7ZZd1NdUjNG70sE02oBlOJMkjQfDlLQfDFj7\n7kWLpg37ovvJC08ZNnbBuQvp64On1zezbE3jXs+3o2UPO1r2FIz99I6VBY+/f+ty5k6robR0sDvG\noyu3s/LZZjbuGNzndfejG1mzqZXO7sG9YG17uunu6XWfVxHZn5BkUw5J0oFkmJIOMAPWgXHcUQ25\nL7YDYeqf3nsak6vLWbamkWt++zSQhLOe3j62NLbT2No54rk272xn8872grHbH3x22HEPLNvCA8sK\n7751xXVLAcjrPM/P713NCUdPpbysBE0MBixJ0kgMU9JBYOOLA6OivJQ502oK9ky9+WVHD6smfOCN\nL6S1rYsb7knuqXX80Q10dveyramDXe3dueeWlmSoqiilbU9yvkmVZXvdj9WXV5hasa6ZFeuaC37+\nvVuWM3vqpILq17otu5hcXT7shsk6POxPA46DEc5G8xouj5Sk/WOYknTYmTNtEnOmDTbHeNsrFg77\nkvgP7z6VcOQUntncmhv7+LtO5qiZtTzxzA6+ceMyAM4/52jqairZtGM3dy3eCMDMhmp2tuyhNy9h\nbWlsZ0tjYfXrJ0OWGwL87HerOGLG5IJlg0+tbWR7cwdb856/ZnMrZSUlNO8eudqmw0+aIDbQpj7t\n3rKxvLYDESYNe5KKnWFKKiJWsA6e8rISMvl3GM4br5882Lb9xIWDe7wGwtSH3nw8R82s5U/Lt/D9\nW1cAcMKCqXR397KtuYPm3Xu/WfGqDS2syjbeGPCL+9YMO+7qO58eNvblax+ndlJFQfXr4RXb6Oru\no7und9h1fp5hAAAgAElEQVTx0qHkQO6F25/ABu6jkzR6hilJSqG8rIQ502pyj9/68gUjLjesqSpj\n5frm3E2Q58+aTEdXL42te+jp3bemFh1dvXR0dRSM3fHQeu7InnvAt365jOrKsoLz/+oPa6muHPyf\n/PhsM729/TRZ+dIEciBD0WgrhONV1ZN0cBimpEPQaCtYVrTG15xpk1g0t566mopcmHrvawOL5taz\namMz//HjRwH4u3e8iIVz6li3dRdfuW4JkFS/ptZWsnpTa27v18tOmk1FeSnbGtt5cm3TXl93Z2sn\nUBiSlq7eWfB44Jz5vvyzx6mvqaQsr/L16z89y7S6KnbvGdxr9tTaRnp7+wv2nwH09/cX7A/b3txB\nSSbDui27cmOtbV302RlROqAMYtL4MUxJE4hLBotH/hLD2knl1NVUMKlq8H+SZzZUs2huPWV5HQPP\nPXVe7gvRk2uTL0SXXHQKleWlPP70Dm7N3ofrtGOnM6mqnJbdnTzxTGPufB2dPcMCUL6Ozl46Ogv3\nfS2O24cdd/3dw4PYF69+bFijje/c/NSw477+8ycoLythyuTB+4A9unI7nV297OlyqaJ0sI0mdMHw\npY+SEoYpaYIzYB3aKstLc19sBsLU68+cn/tCNBCmPvTm44HBL0R/8/YTmVpbxdMbmrn2rlVAUvkq\nLy1hS2M7K55NuhVOra2EDOzp6qV9z8idDoF96ljY3dPH9ubBe4Pd/uCzw1rVf+2GpVSUlRQ0+bj5\n/jUsnFtPP4NjO1r2MLm6nOZdg5W43R3dtLZ30bGXzoyS9t/BaCxiJU2HAsOUpGEMWIe/KZMrWTCn\nrmDJXX7la+ALzF+/7cRhY//nL15EdUUZy9c1cdP9SfOMV54ylznTamhp68wFo4te/QIWzK5ja3M7\n37tlOZDsLcsAqzYOBr2RjFRBe+KZxmHP+fZNTw477qvXLx029pXrllBfU0FZ6WCl7/YH11FRVpp7\n/OjK7Wxr6qApL5h1dVstk/bHgQ5Eo+1wKR0shilJo2LA0oApkyuZP6uW0tJMLkyd86I5uS81A2Fq\n4dw6Fs2tJ5N3b+MTFkwdVjX75IWnMLmqnKWrd/CL3yfnO/P4WdTVVNC0q5OHV2wDYMaUKlp2d9GV\n4r5d7Xt6hlXWHl25o+DxSDdyvvzax5k9dVJSoctqbe8qaG0vqfhY1dLBYpiSlJqt3HUgVFWUMn92\nLT19fbkw9aozjsiFroEw9eG3nMDCOXUsWb2Dr93wBAAXvuoYZjVMYtPOttxerre9fAHTp1SzpbGd\nX/1hLQBnnzibstIStja1E7NLGKfVVdLV0/ec+8j6+2HzznY27xzcS/b1G56gurKUhtqq3NgfntjM\nymebadw1uHzx4RXbeHbLLna0Do5t2LabqbVV9PUZxqSDLe3yQhhdu3yXL05MhilJY86ApQMlk8lQ\nO2mwecWiefUsmlvP5EnlubHj86pfA2Hqz04bvoTxI289ERj8kvTp95zKvOmTWbm+KXfT5lefcQRt\nHd2s2thSsM8radbRlnt8z2Obhl3r0Jb1AD/8dQQiJSWDDUiuvnMlU2ur6O4drLjd9sd1TKosK2hd\nf/uDzzJn2qSCvWCPP72DDdt2s615sGX+E8/sZFtTB9uaBgPgtqYOZkyptqImFanxaqs/VgFzf28o\nfigFTMOUpHFhVUvFpqy0hMnV5QU3bX7p8bOGfUl4yzlH09vbz9MbWli5vjn73CQc9fX1M5qiU35l\nas3mXazZvKvg5489vWPoU3h05fDOigPLLPPdfP/aYWP/86uks2JehuOr1y8tCFffvulJZjZUU5p3\n0PJ1TfT3QUt7Yav9/v5+evPCX09vn0FN0qgcysFpJIYpSUVt0dx6fvTZV9PQUENTUxs9PX2GLo2r\nkxZOGxawPv2e04aN/dN7T2PBnDpWb2rhP3/6GADvf32gqryMpzc087tHNwKwaF4dJZkMLW1dbGtK\nKkzT6quYVFlGb18/m3YkFbCptcmyxPY93aMKbCPJf97ujsLljTta9rCjZU/B2I33PjPsHJf95FH6\n+vJ7KsJ//vQxMhkKGnx885fLqKkqLwiOV9+5kqqKMtrzqmvX372KqXVVBc0+7lq8gYeXbytoBnLr\nA+uoqS6jta0rN/brPz3LjPpq2vLug7Zk1Q52tuyhMe+5Lbs76ejsMfBJOuAMU5IOC2lvWmww01gp\nKclQVlpSEDCOmDGZRXPrmT6lKhemLnzVC4YvQTz/hL12Vsy/4fM/vPtUjpw5mTWbW/nyz5IbPn/8\nnSczf3Yta7e0csV1SWfDd7/6BdRUlbN6U0vudc86YRaZTIYHlm0B4ORjptHb159dIji4bHCo3r0k\nuf7+whb5ja2dNLYWVrSGVuAAVq5vAVoKxh58cuuw4x5fNbxaN9J90G55YN2wsYFlm3m3d+NL1zxG\nf39SVRvwX9c+XjBfP71jJbOnTSoIYSvXN9PT08fOvP1xezp7aN/TXXCvtM6uXjo6e+jMC4mGOenw\nY5iSNGGMNji5BFHFLP+Gz9WVZdRUlVNdOfh/55OqyqibVEFN1eA+sgXZzoozp1bnwtR5px8BkAtT\nbzr76GEB7mNvP4n6mgpWrG/i5/ckVao/O3UesxqqadrdyW+y+8Je99KjqK+pYEtjO/c+nuwfO+3Y\nGVRXltK0q5On1jYBcMy8eiZXl9Pe2Z0NUTB/1mTIZNjd3sXObPiaXF1ORXkJfX39NO9OKlEzplRR\nVVFGd28fW7INQabWVtIPdHT2jOqmz/lZpqt7eFfI5ByD51m7ZRdrtxQGwJFuWv2fVz82bOzyax8f\nNnbZTx+juqK0ILBd89unmVpXRXfP4Ove8fB6aqq20JQX2H7z0LPMaphUUIVbsa6Jjs4eduZVFJt2\ndbKjuaOggpd0s+wuCHa9ff309fcb8KT9ZJiSpJRGG7r2J8RJ46l+ckWynyGvonP2SbNzoWsgTJ0e\nZuTGBsLU6888Kjf21NoknL3rVccMC2zvfW0Y8V5mQ8c+/Ja9V+vyxz554SnMm17D0xua+eYvk/uQ\nXXDuQuqqK3h22y7uWpyEyVecPIcZU6pp3t2ZGzvnRXPo6e3LVcYWzaujp6efna17hi2LTKOvr5+2\nIS36n9nUyjObWgvGHl6+bdhzH1kxvAr38xGWYf73L5YNG/vKdUuGjV32k0eHjV1x3RImVZWRyZvw\nH9y2vCCE/vD2FdROqiio6N3z2EbWb93Nnryw1ry7k80729jaONgIZfPONirLSgvCX/ueHjo6ewrO\nJx1KDFOSNA4OdJVsNGOrNxUupZIOR1UVpUyZXMnUusHW9ccd1ZALXQPB6eUnzx029spT5gKDywxH\nWoL50bedyIz6alZtauGnd6wEkptRT6urYltzR66D5JvOns+MKdVsa+rg1j8mSw/PO20ek6rK2drU\nngtMC+fWkclAa1tXrmPklMkVVFWU0dfXn+vUOGVyBb19/dngMTbVpLY9PcPC3qYd7QWPN2xvA9oK\nxv7wxBb+8MSWgrErbxwe6r5/64phYyMFvS/8aDEZKNiX98WrH6OirKSgMvs/v3qKmqrygiB20/1r\nmDmluqAKt725g6NmTh72OtKBYJiSpAlif4PZaBqBHOhqnVRsGmorc/dFG3DyMdNzbaAHwtTJx0zP\nBbGBMHXWiYNVvYEwddGrhwe2v3n7SaMa+9sLTmJWwyRWbWrhqtuSoPLO8xYxa0py77WBytVbzjma\n6XXVbG1qz13La19yJNPrq9ne3MEdDycVxrNPnE11RRnbWzpYunonkNxoO5OBZdmbbL9wfgMVZSW0\ntHXllkBWlpcWhJcDYWhc7O7pK9iTB2T39hXu73t8hE6Y37n5KTJAbd4tFH6/ZBObd7TT2T0YHju7\neq2QaZ8ZpiRJRcEgJu2bupoK5k6voaNrMBC84IgpLJpbT92mwfux5XegHAhTZxw3Mzc2EKby78c2\nEKbe+vIFwGCYevsrFw4LdZdclCytXLp6J9+6KVla+Y5zF3HkzMlsa+7IVfD+8nWBWQ2TWL9tF9fe\ntQqA889JqnqbG9u4/cFnAfjzM45gWn01O1s6uPORDUBSNaybVMGOlg7+mK0cvmjRNKory2je3Zm7\nGffMKdV09/axu6O7IHz1A615N+i+b8lm7luyueDzHNjnNrRRScEx1zxGSUmmoEvl125YyuTq8oLj\nfnnfM0yrry4Ia4vjdrY1ddCcd/84u0we+gxTkqRD3v4EMYOZtP+qKsqYVj+4tDIcNSUXugYcOTPp\nZllRPtiA48SFgzfZHghTL8m7v9tAmDrnRXNyYwNh6s0vG9405a/fduKwm8W+67xjKMlkeHpDM49k\nO0CWl5UMq3QNeK5GJZ0jNC7Z1d7NrvbCPXVPrm0CmgrGfv2nZ4c998s/W0JFeUnBzchvvn8N9TWV\nBfv0Hl6+jZbdXQW3Feju6aOzq5fOvOYrbR3dNO/upLW9q+A4A9vYMUxJkpTHaph0eDnmiHoWza1n\n4by6XJj61EWnMHtqDUtW7eB7ty4H4I1nzWfK5Eq2NLYNNirJ7qO7L9tY5RWnzGVqbSWNuzpzYy89\nfhbVFaXsaNnDsjVJBW/OtElAEm5a25+7eUlXd19BU44nslXAfHc8vD5XQRzwxRG6SF5x/dJhY1+8\n+jFKMhnKywZD7HdufpJJleUFy1Wv+90q6msqCjpj3nDPairKSgvC2cA93wYsWbWDtZt3sXnn4F66\nuxZvYGptJS15XSWXrNpB864uWtoGK3PNuztpbN3DrrzzH2oMU5IkpWDAkg5dmUyGydXlzM6GHoBT\nXjC4zy3XqORFc4DBMPXyvArZwNirzzgiNzYQpj7wxhcOq5r9w7tPZe70Glaub851XXzT2fMpKylh\nzZZWlqxKllbOmlpNeWkpnd09uaYk+6uvv39IU449QOG5n94wvEnRwPLJfEPv+TbSvd3uX7p52NhI\nx43UqCT/Zt2HAsOUJEkHyIFuymFgkw4f5WUl1E2qoKG2MjeW36hkIEx98E3HDwtin37PqTRMruSJ\nNY25PWivP/MoZjVMYnvzYMfI889ZwJxpk9jW3MGN2QYkrz/zKGqrK9jc2Mbvs/vETjlmOtWVZbS0\nDd4H7ujZtZSVldDW0c3m7L3cjpw5mbqaCrp7enP3hptWX0VbR/ewe7vl7yVLWuwnSwy79rKccm92\nP08lr9gYpiRJOoTsT2dFSYemstISZjZM4ui8fVSnHTtjWGOR/D1oIx03EKbeePb8YfeBe89rjh0W\n4v7ydcPvA/eR808AyLu328mEIxtYt3VXbuxTF506bO/aJy88hVkN1cT1zXzvlmRp5TvOXcSshmo2\nN7bnwt8RM2vG4BMcO4YpSZImCBtwSDrQqirKKCstGcVxpUyvry7YRzVSo5L8e4kdCgxTkiQpxyqX\nJI2eYUqSJO2zg7E/bLzGDI6SRsswJUmS9BxGW5k7XKt6+/MeDof3Lz0Xw5QkSdI+GqkRyL48t1iq\ncGkD4P4Ex7G43tE0ZZHGgmFKkiRJh70DufTTsKYBhilJkiRpPx2uyzz13AxTkiRJ0kFiwDq8GKYk\nSZKkcXQg97Pty3Haf4YpSZIk6RA1Ho0/8m+yO9Fl+vv7x/saisL27buK5oMoKytJ1R1IB5bzUDyc\ni+LgPBQP56I4OA/Fw7koDofTPMyYUZsZzXElY30hkiRJknQ4MkxJkiRJUgqGKUmSJElKwTAlSZIk\nSSkYpiRJkiQpBcOUJEmSJKVgmJIkSZKkFAxTkiRJkpSCYUqSJEmSUjBMSZIkSVIKhilJkiRJSsEw\nJUmSJEkpGKYkSZIkKQXDlCRJkiSlYJiSJEmSpBQMU5IkSZKUgmFKkiRJklIwTEmSJElSCoYpSZIk\nSUrBMCVJkiRJKRimJEmSJCkFw5QkSZIkpWCYkiRJkqQUDFOSJEmSlIJhSpIkSZJSMExJkiRJUgqG\nKUmSJElKwTAlSZIkSSkYpiRJkiQpBcOUJEmSJKVgmJIkSZKkFAxTkiRJkpSCYUqSJEmSUjBMSZIk\nSVIKhilJkiRJSsEwJUmSJEkpGKYkSZIkKQXDlCRJkiSlYJiSJEmSpBQMU5IkSZKUgmFKkiRJklIw\nTEmSJElSCoYpSZIkSUrBMCVJkiRJKRimJEmSJCkFw5QkSZIkpWCYkiRJkqQUDFOSJEmSlIJhSpIk\nSZJSMExJkiRJUgqGKUmSJElKwTAlSZIkSSmUjeeLhxCqgCuBC4AO4PIY43/t5dibgLcMGX5zjPGW\nEEIGuBT4IFAD3AF8LMa4fcwuXpIkSdKENt6VqS8BZwDnAR8FLg0hvGMvxx4PvBeYk/frzuzPPgz8\nb+A9wMuBucB3x+6yJUmSJE1041aZCiHUkFSSXh9jfBR4NIRwAvAx4IYhx1YCC4CHY4xbRjjdG4Cf\nxRjvzR7/ReCasbx+SZIkSRPbeFamTgbKgQfyxu4HXhpCGHpdAegHntnLuXYCbwwhzAshVAMXAY8d\n4OuVJEmSpJzx3DM1B9gRY+zKG9sKVAHTgPz9Ti8EWoAfhxDOBdYDl8YYb8/+/F+BXwEbgF5gM3DW\nvlxMSUmGkpJMirdx4JWWlhT8V+PDeSgezkVxcB6Kh3NRHJyH4uFcFIeJOA/jGaYmAZ1DxgYeVw4Z\nPy57/G+Ay4C3Ab8KIZwZY3wEOBpoB94MNAGXA98HXjPai5k6tYZMpjjC1IC6uurxvgThPBQT56I4\nOA/Fw7koDs5D8XAuisNEmofxDFN7GB6aBh63Dxn/N+BrMcam7OMlIYTTgQ+HEBYDPwI+FWO8BSCE\n8E5gXQjhpTHGP43mYhob24qqMlVXV01rawe9vX3jfTkTlvNQPJyL4uA8FA/nojg4D8XDuSgOh9M8\nNDTUjOq48QxTG4HpIYSyGGNPdmw2SYv05vwDY4x9JBWnfMuBE4AZwJHAkrzj14cQdgDzgVGFqb6+\nfvr6+tO8jzHT29tHT8+h/QfxcOA8FA/nojg4D8XDuSgOzkPxcC6Kw0Sah/Fc0Pg40A2cmTd2DknH\nvoJPP4RwVQjh+0OefwqwAmgkWR54fN7x00n2Xa0Zg+uWJEmSpPGrTMUY20MIPwS+FUK4GJgHXAJc\nDBBCmA20xBg7gJuBa0MI95B0/3s3SfD6cIyxJ4TwA+DybDWqkWTP1IPAIwf5bUmSJEmaIMa71cYn\ngMXA3cCVJB36bsz+bDPwLoDs2EeBzwLLgPOB18UY12aP/ThwI3A1cC/JMsG3xhiLa92eJEmSpMNG\npr/fvAGwffuuovkgyspKaGiooampbcKsNy1GzkPxcC6Kg/NQPJyL4uA8FA/nojgcTvMwY0btqDrT\njXdlSpIkSZIOSYYpSZIkSUrBMCVJkiRJKRimJEmSJCkFw5QkSZIkpWCYkiRJkqQUDFOSJEmSlIJh\nSpIkSZJSMExJkiRJUgqGKUmSJElKwTAlSZIkSSkYpiRJkiQpBcOUJEmSJKVgmJIkSZKkFAxTkiRJ\nkpSCYUqSJEmSUjBMSZIkSVIKhilJkiRJSsEwJUmSJEkpGKYkSZIkKQXDlCRJkiSlYJiSJEmSpBQM\nU5IkSZKUgmFKkiRJklIwTEmSJElSCoYpSZIkSUrBMCVJkiRJKRimJEmSJCkFw5QkSZIkpWCYkiRJ\nkqQUDFOSJEmSlIJhSpIkSZJSMExJkiRJUgqGKUmSJElKwTAlSZIkSSkYpiRJkiQpBcOUJEmSJKVg\nmJIkSZKkFAxTkiRJkpSCYUqSJEmSUjBMSZIkSVIKhilJkiRJSsEwJUmSJEkpGKYkSZIkKQXDlCRJ\nkiSlYJiSJEmSpBQMU5IkSZKUgmFKkiRJklIwTEmSJElSCoYpSZIkSUrBMCVJkiRJKRimJEmSJCkF\nw5QkSZIkpWCYkiRJkqQUDFOSJEmSlIJhSpIkSZJSMExJkiRJUgqGKUmSJElKwTAlSZIkSSkYpiRJ\nkiQpBcOUJEmSJKVgmJIkSZKkFAxTkiRJkpSCYUqSJEmSUjBMSZIkSVIKhilJkiRJSsEwJUmSJEkp\nGKYkSZIkKQXDlCRJkiSlYJiSJEmSpBQMU5IkSZKUgmFKkiRJklIwTEmSJElSCoYpSZIkSUrBMCVJ\nkiRJKRimJEmSJCkFw5QkSZIkpWCYkiRJkqQUDFOSJEmSlIJhSpIkSZJSMExJkiRJUgqGKUmSJElK\nwTAlSZIkSSkYpiRJkiQpBcOUJEmSJKVgmJIkSZKkFAxTkiRJkpSCYUqSJEmSUjBMSZIkSVIKhilJ\nkiRJSsEwJUmSJEkpGKYkSZIkKQXDlCRJkiSlYJiSJEmSpBQMU5IkSZKUgmFKkiRJklIwTEmSJElS\nCoYpSZIkSUrBMCVJkiRJKRimJEmSJCkFw5QkSZIkpWCYkiRJkqQUDFOSJEmSlIJhSpIkSZJSMExJ\nkiRJUgqGKUmSJElKwTAlSZIkSSkYpiRJkiQphbLxfPEQQhVwJXAB0AFcHmP8r70cexPwliHDb44x\n3pL9+TuA/wDmAX8APhRjXDdW1y5JkiRpYhvvytSXgDOA84CPApdmQ9FIjgfeC8zJ+3UnQAjhbOAa\n4L+A04BO4NoxvXJJkiRJE9q4VaZCCDXAB4HXxxgfBR4NIZwAfAy4YcixlcAC4OEY45YRTncJ8JMY\n47ezx/8dcHcIYXqMccdYvg9JkiRJE9N4LvM7GSgHHsgbux/4TAihJMbYlzcegH7gmb2c61zg/QMP\nYoxrgKP35WJKSjKUlGT25SljprS0pOC/Gh/OQ/FwLoqD81A8nIvi4DwUD+eiOEzEeRjPMDUH2BFj\n7Mob2wpUAdOA7XnjLwRagB+HEM4F1gOXxhhvDyFMARqAshDCb0hC2p+Aj8YYN472YqZOrSGTKY4w\nNaCurnq8L0E4D8XEuSgOzkPxcC6Kg/NQPJyL4jCR5mE8w9Qkkr1N+QYeVw4ZPy57/G+Ay4C3Ab8K\nIZwJDCz7+xrwz8BngX8DbgkhnD6kwrVXjY1tRVWZqqurprW1g97eUV2+xoDzUDyci+LgPBQP56I4\nOA/Fw7koDofTPDQ01IzquPEMU3sYHpoGHrcPGf834Gsxxqbs4yUhhNOBDwP/kh37bozxxwAhhPeQ\nVLnOpHAZ4V719fXT19e/b+9gjPX29tHTc2j/QTwcOA/Fw7koDs5D8XAuioPzUDyci+IwkeZhPBc0\nbgSmhxDyA91skhbpzfkHxhj78oLUgOUkbdB3AN3AirzjdwI7gSPH4LolSZIkaVzD1OMkIejMvLFz\nSDr2FUTZEMJVIYTvD3n+KcCKGGMPsJhkr9TA8dOB6cDaMbhuSZIkSRq/ZX4xxvYQwg+Bb4UQLiap\nMl0CXAwQQpgNtMQYO4CbgWtDCPeQLNt7N0nw+nD2dP8FXBVCeAxYBnyRJKw9dPDekSRJkqSJZLz7\nFn6CpKp0N3AlSYe+G7M/2wy8CyA79lGS5hLLgPOB18UY12Z/fgPwcZKbAC8GSoHzY4zFtQlKkiRJ\n0mEj099v3gDYvn1X0XwQZWUlNDTU0NTUNmE27xUj56F4OBfFwXkoHs5FcXAeiodzURwOp3mYMaN2\nVG2+x7syJUmSJEmHJMOUJEmSJKVgmJIkSZKkFAxTkiRJkpSCYUqSJEmSUjBMSZIkSVIKhilJkiRJ\nSsEwJUmSJEkpGKYkSZIkKQXDlCRJkiSlYJiSJEmSpBQMU5IkSZKUgmFKkiRJklIwTEmSJElSCoYp\nSZIkSUrBMCVJkiRJKRimJEmSJCkFw5QkSZIkpWCYkiRJkqQUDFOSJEmSlIJhSpIkSZJSMExJkiRJ\nUgqGKUmSJElKwTAlSZIkSSkYpiRJkiQpBcOUJEmSJKVgmJIkSZKkFAxTkiRJkpSCYUqSJEmSUjBM\nSZIkSVIKhilJkiRJSsEwJUmSJEkpGKYkSZIkKQXDlCRJkiSlYJiSJEmSpBQMU5IkSZKUgmFKkiRJ\nklIwTEmSJElSCmXjfQEqtKblWS5f/A0A/vElf8uRk48c5yuSJEmSNBIrU5IkSZKUgmFKkiRJklJw\nmd8hIH/p3yWnf4wF9UeN8xVJkiRJsjJVZLr7usf7EiRJkiSNwn5XpkIIM4BXAotjjGv2/5Imtke3\nLc39fsm2Jzmi5ohxvBpJkiRJe7PPYSqEcCJwI/BBYCmwBJgNdIYQ3hBjvPvAXuLEcuTkebnf3772\nd+zc08yZs188jlckSZIkaSRpKlOXA08DK4CLgHLgCOAjwL8DLztgVzcBzZ08u+DxQ1seZVVzYcHP\nPVSSJEnS+EuzZ+ps4JMxxm3A64D/z96dx1dV34ve/+wMzBDCPEOYFqMoONe5amtttVZtrVp7tMM5\np9j7nHuul6fnPj23z3Om26e159zTaq2tA87zPIuCAyrKIFOAxRRImAkkIUDItHP/SFgkIQiGZO+d\n5PN+vXi51netvfuFn1i+fL/rt14Pw3AbMBs4tQVz6/Am9BkLwN5DRVGspqYmWelIkiRJqqc5xVQc\nqAiCIAO4CHi3Lt4TONhCeQm4eszX+d74b5MeO7JMr+a9xaGq8iRmJUmSJAmaN+b3CfAPwG6gK/B6\nEARDgX8DFrRgbh1eLBbjgmHnkpmWyaNrngEgLFrPtgM7j7rX0T9JkiQpsZrTmfo5MB34W+D/CsOw\nEPgFMBG4owVzU51B3Qc2OC+tKI2O4zXxRKcjSZIkiWZ0psIwXA/MaBT+J+DvwjCsbpGsOrCcrBHc\ne/mdZGd3p6joAFVVDYulb+Z8jTn58yivrgDg2XUvc/upP05GqpIkSVKH1qyX9gZBMCIIgp51xxcD\nvwK+25KJqWkT+ozjlok3ROf5pVv4zaI/sKdsbxKzkiRJkjqeL11MBUFwDbVbo58dBMEY4C3gq8B9\nQRDMbOH81ISszr0anBeW7eGxNc8edV9eST4z585i5txZ5JXkJyo9SZIkqUNoTmfqH6l919S7wI3A\nZmAycCtwe8ulphNx2YiLSIulURGviGJuny5JkiS1vuYUUxOBP4dhGAcuB16rO14AjGrB3FQnJ2sE\nd2DJE5EAACAASURBVF/yG+6+5DdH7dI3rf8Ufn7qT+iS3jmKvbLxTfZXHEh0mpIkSVKH0pxiqhjo\nHQRBFnAW8E5dfAywp6US04kbnz2GmyceeWRtbfEG/uWz37GhOC+JWUmSJEntW3PeM/UacC9QSm1h\nNScIgkuBe4BXWzA3fQm9O2c1OC+t2M8LG1476j7fRyVJkiS1jOa+Z+ojYD9wVRiG5cB51L7M1/dM\nJcAXjf0BfGfsN8nq1LNBbPuBHYlKT5IkSeoQmvOeqTLgvzWK/b8tlZBO3uisUZx11gweWPk4YdE6\nAJ4In6e6Js7Q7oOTnJ0kSZLUPjRnzI8gCGYA/x2YClQCucD/DsNwYQvmppPQI7M73xr9NcLFtcVU\nvCbOk+HzTOk7McmZSZIkSe1Dc94zdSHwMTAOeBt4H5gAzA+C4Cstm55aSnbn3gCs3LP6qGu+j0qS\nJEn68prTmfpX4IEwDP+2fjAIgruBfwEubonE1LJunng972/5mOWFuVEsv3SLG1BIkiRJzdScYmo6\n8OMm4n8AHPNLksObUhxL5/TO/GTqD3gqfJH52xYA8Oy6l+mUlsmg7gMTlaYkSZLUbjRnN79CoF8T\n8QFA+cmlo9aUFkvj7MGnR+fxmjiPrnmGD7d+ksSsJEmSpLapOcXUK8BdQRBEOxkEQTAJ+H3dNbUR\nPeu2T/90x+KjrvkclSRJkvTFmjPm90tgDrAyCIKSulgWsAzfM5VSjjf6d/OE63h90zts3lcQxQ5U\nHkhEapIkSVKb96U7U2EYFgFnAt8E/hfwa+BK4PQwDPe0bHpqTd0zu/N3p/0N47PHRrFH1zzL1v3b\nk5iVJEmS1DY06z1TYRjGgTfqfgAQBMGYIAhuCsPwn1oqObW+TumZfCvna/yuaD0ApRWl/PviP/KN\nnMuPujevJJ87F98FwB0zbncnQEmSJHVozXlm6ljGAr9qwe9TgsRiseg4LZbGoepyXlj/ahIzkiRJ\nklJfszpTaruO9xzV9eOu5pWNb3KwqiyKVcerE5GaJEmS1Ka0ZGdK7cDwnkO54/Tbye6cFcUeXfM0\nBaVbk5iVJEmSlHospnSUgd36c+OE66Lz3WV7+M2iPzB/26dH3esW6pIkSeqoTmjMLwiCE9lpYOBJ\n5qIU0jWja3ScmZZJZbySBdsXJjEjSZIkKbWc6DNTm4Ca49wTO4F7lIKO9xzVDyfdwPtbPmJd8cYo\nNrfgQ27s/p1EpCdJkiSlpBMtpi5u1SyU0np3zuK/nPZTXlz/Bu8WvA/Akl3LWFe8gfOHnJPk7CRJ\nkqTkOKFiKgzD91s7EaW2tFgapw2YGhVTAKUV+3l905yj7vV9VJIkSeoI3IBCzXLt2G/Rv2vfBrHl\nhblJykaSJElKPN8zpSYd7zmqnKyRnD/sHJ5d+zLzty0A4O3N8zhQeYAzBs5IVJqSJElS0tiZUrNl\npmVw9uDTG8Q+2vYZT4bPJSkjSZIkKXEsptRiRmeNAmDHwV1HXfN9VJIkSWpvvvSYXxAEtxzjUg1Q\nAWwBFoRhWH0yiSn1HG/075oxV7KmaC2v5R3ZlGJO/nv8YOL1iUhPkiRJSqjmPDP1j0AOtV2tkrpY\nFrXFVKzuPAyC4LIwDLecfIpqK2KxGN/IuYzO6Z15fv2rACzbvZJNJflcNOwrSc5OkiRJalnNGfP7\nI7AKmBaGYXYYhtnAZOBzYCYwFNgIHLuFoXbt8LjfYSUV+3hp4xtH3efonyRJktqy5hRTfw/8bRiG\nKw4HwjBcDdwO/I8wDLcDvwQua5kUlcoOj/7dfclvmnyf1DVjv0l2594NYmHR+kSlJ0mSJLWa5hRT\nvTky3lffQaBP3XER0LW5San9GJM1il+e9d+YPmBaFHtl45s8tvoZKqorkpiZJEmSdHKaU0x9CPwm\nCIKsw4EgCHoDvwY+rgtdC4Qnn57agy4Znblk+PkNYh9vX8gjq58+6l5H/yRJktRWNGcDituBucCW\nIAhCaguycUAh8PUgCC6jtrD6XotlqXZlfO8xrC3eQFF5cRSL18STmJEkSZL05X3pYioMw41BEEwE\nbgBOA6qA/wSeCMOwIgiCQ8DUMAzXtGyqaiuOt4X6t0Z/nR0Hd/HU2heoilcB8GT4PD+Zeqxd9yVJ\nkqTU05zOFGEYlgVB8CywEqgENoRhWFF3bXML5qd2KBaLce6QM+ic3okHch8DYNuBHfyvz/6D84ee\nk+TsJEmSpBPTnJf2pgF3Aj8DMuvCFUEQ3Av81zAMa1owP7UTTXWr+nTJjo7TSKMiXsm7BR8c9dm8\nknzuXHwXAHfMuL3JXQMlSZKkRGvOBhT/ANwGzAKmA6cDvwBuAe5oudTUkdw88XqGdB/UILa2aEOS\nspEkSZKOrzljfj8GfhaG4eP1Yp8HQbAb+P+A37ZIZupQBnTrz6wz/guPr3mWz3YsAeDljW9QXF7c\nYFt1SZIkKVU0p5gaCHzaRPxTYPjJpaOOLDMtgwuGnhsVUwAfbP2E1XvXHnWvo3+SJElKtuYUU2uB\nS4HGM1iXAZtONiF1HMfb9W901ig2lmxid9meKFZT4yN5kiRJSg3NKab+Hbg3CILRwEd1sfOoff+U\nz0ypxVwz5ko2lxbw/PpXo/dQPbPuJX405eYkZyZJkiQ17z1TDwdB0Af4v4H/XhfeCfwyDMM/tmRy\n6thisRgXDz+PrhldeGT10wDkl27hXz/9HecNPTvJ2UmSJKmja+57pv438L+DIOgPxMIw3NWyaamj\namr0b2C3AdHx4S3U5xZ8mOjUJEmSpAaaVUwdFobh7sPHQRBcAMwOw3D0SWclHcPNE69nXsGHFOzf\nFsU+3bGYeE2cf19S2xh1QwpJkiQlQnPeM3UsXYGRLfh90lEGdOvPfz/955w/5MiY34dbP+GxNc8k\nMStJkiR1RC1ZTEkJkZ6WzlmDT28Q23kwapJSFa8GardPnzl3FjPnziKvJD+hOUqSJKn9O6kxPykR\njreF+sXDzuPDrQuoqqkCYPaqx7khuIbuGd0TlaIkSZI6IIsptXkzBp7KmN453LfyEQCKy0v40/LZ\njOzpO6QlSZLUek6omAqC4H+ewG3jTjIXqdl6d86Kjntm9qC0cj+bSwuiWHl1eTLSkiRJUjt2op2p\nW0/wPh9MUUI0Hv2r/0zUrZNvYl3xBuZsnkdVTe3zU4+sfpqfTbuNiupK7lx8F+Cuf5IkSTo5J1RM\nhWGY09qJSC2lU3om3xx9OcN6DOEvKx8Gakf/frvoLi4dcWGSs5MkSVJ74TNTahea2qQiq3Ov6Dg9\nlk5lvJI3Nr2T6NQkSZLUTrk1ujqEGydcS98ufRrE9h4qAtxCXZIkSc2T1M5UEARdgLuBa4Ey4M4w\nDH93jHtfAq5qFP5WGIavNrrveuDpMAxjrZCy2qiB3QbwizP+C/csf5CNJZsBeGjVE+w6uJtxvcck\nOTtJkiS1RcnuTP0WOB24BPgZ8KsgCK47xr2TgJuBwfV+zKl/QxAEvYHft1q2atO6ZXbjmjHfjM6r\na+K8mvc2D69+KolZSZIkqa1KWmcqCILuwI+BK8IwXAIsCYJgMnA78GyjezsDOcDCMAx3fMHX/hbY\nAAxqnazVljT1HFUsdqRhOazHELbs38aeQ3ujWFnVIaB29O/wrn+/OPPnDO/hO6skSZLUUDI7U9OA\nTODjerH5wFlBEDTOKwBqgI3H+rIgCC4ELgL+tWXTVHv1vfHXcNOE6+ic3jmK3b/yEd4r+Ijqui3V\nJUmSpGNJ5jNTg4HCMAwr6sV2Al2AvsDuevGJQAnwSBAEFwEFwK/CMHwDos7Vn4GZQP3vO2FpaTHS\n0lLjMav09LQG/1TLyUg/ssaZGWlcMOJssrv04q6lDwBwqLqcZ9a9RN8u2dF9aelpZGS4Fsnk74nU\n4DqkDtciNbgOqcO1SA0dcR2SWUx1A8obxQ6fd24Un1B3/1vAr4FrgFeCIDg7DMNFwD8CS8IwfLuu\n2PrS+vTp3mAELBX06tU12Sm0O9nZk3g6554GscHxftHxkJ4D2Va6kz11O/0BHGA/2dndE5ajjs3f\nE6nBdUgdrkVqcB1Sh2uRGjrSOiSzmDrE0UXT4fODjeL/DPw+DMPDf8JdFgTBDOCnQRAcAn4KTD2Z\nZPbuPZBSnalevbqyb18Z1dXxZKfT7pXuK4uOfzDhenYc3M2za1/hQGXtv4a//+QBlm8NOaXfRP5z\nyV+A2ueocnqPTEq+HZG/J1KD65A6XIvU4DqkDtciNbSndTjRv0hPZjG1FegXBEFGGIZVdbFB1G6R\nXlz/xjAM40BRo8+vBiZTu616H2BDEAQA6QBBEOwH/joMw8dOJJl4vIZ4vKaZP5XWUV0dp6qqbf+L\n2BZUVR9Z9+o4nDlwBlmZWfx+6Z8BqKGGefnz+WTrwgafcW0Sz98TqcF1SB2uRWpwHVKHa5EaOtI6\nJLOYWgpUAmdTu/EEwHnU7tjX4Fc/CILZQDwMw9vqhU8FVgB/AOoXTGcBj9Zd39kqmatdaWrXv07p\nnaLjCX3Gsmbveg5VH5lK3bQvn5ysEQ12/btjxu3kZI1ITNKSJElKuqQVU2EYHgyC4CHgT0EQ3AoM\nBe4AbgUIgmAQUBKGYRnwMvBkEATvUbv7343UFl4/DcNwLxDtbR0EwbC671+fwJ+O2rFvj72C8qoq\nHl/zLDsP1u6L8uy6l1lXtIEzBs1IcnaSJElKlmR2pgD+HrgHmEftbn2/CsPw+bpr26ktrGaHYfh8\nEAQ/A34JjAByga+HYbgp8SmrI8jJGsG9l99JdnZ3iooOUFUV5+YJ3+V3S+6O7llWmMvKPWuSmKUk\nSZKSKanFVBiGB4Ef1v1ofC3W6Pw+4L4T+M73gNTYSULtSv3dHmcMOJXPdy9v8D6qVXtCRvYaxuZ9\nWxz9kyRJ6gA6zibwUgu6ePh5/D9n/ldG9hwexV7fNIffLvoDBaVbk5iZJEmSEiXZY35Sm9HURhXX\njbuqwehffulW8ktfSHRqkiRJSgI7U9JJqD/6d8nw8+me2a3B9Xfz36e0Yj95JfnMnDuLmXNnkVeS\nn+g0JUmS1ArsTEktZPqAaVwx6lKeXvsiC3d+DsDnu1eweu86zhw0PcnZSZIkqaVZTEknoanRvwuH\nfSUqpgAOVR/ig60fR+c1Nan1cmhJkiQ1j2N+Uiu6acJ1jM4a1SD24obXKC4vcfRPkiSpjbOYklrR\n4O6D+Pvpf8tVo6+IYhtKNvHPC37H8sLcJGYmSZKkk+WYn9TCmhr9G589psH5oepDvL15XiLTkiRJ\nUguzMyUl2I3BtQzqNqBB7J389x39kyRJamPsTEkJNqTHYH5x5t/x5JrnWbBjEQBLd68gd89qpvWf\nmuTsJEmSdKIspqQEaGr077yhZ0fFFEBlvIpF9XYBrIxXJiw/SZIkfXmO+Ukp4IeTvs+p/ac0iD2w\n8jEW7ficjcWbHf2TJElKQXampBTQv2tffjL1Fj7ZtohH1zwNQGnlfh5c9QRDug9KcnaSJElqisWU\nlCRNjf4N6n5kY4renbMoLi9h24EdUexQVXnC8pMkSdIXc8xPSlF/NelGrhl7JZ3SOkWxB1c9xtLd\nK5OYlSRJkg6zMyWlkMbdqnHZOQzqNpB7lj8AwIHKg/xlxcOM7z2GtcUbALhjxu3kZI1ISr6SJEkd\nmZ0pKcV1z+wWHffM7AEQFVIAVfHqhOckSZIkiympTbl18o1cMPTcBrH7Vz7CB1s+YV1Rnrv+SZIk\nJZBjflKKazz6F/QZy5Aeg3gyfB6o3fXvqbUvRF0rSZIkJYadKakNGtZjSHQ8oGt/oLaoOqygdGvC\nc5IkSepo7ExJbVD9blVNTQ3LC3N5Yf3r7C4rBOCptS+wcs9qcvesAdykQpIkqTXYmZLauFgsxrT+\nU7hl4vcaxA8XUlBbcEmSJKllWUxJ7UQsFouOp/Sd2ODaE+FzbCndluiUJEmS2jXH/KR2ovFGFR9u\nXRBtUrHtwA7+/0W/56JhX+HKnMvoktElWWlKkiS1GxZTUjtVf5OKjLQMquJVzC34kLkFHwLw36bP\nZHTvkclKT5Ikqc1zzE/qAG6ddCNT+01qEHs8fJaVhat9nkqSJKmZ7ExJ7VTjsb9TB0xhzub3eXHD\nawBsP7CTe5Y/yMBu/dl5cDfgrn+SJElfhp0pqQMZ2zsnOu6e2Q0gKqQA1uxdS7wmnvC8JEmS2iI7\nU1IHUr9bVVldySfbF/J63jvRC39fzXubz3YuYfqAaby56V3AbpUkSdKx2JmSOqjM9EwuGHYuP57y\ngwbxXQcLo0IKoLqmOtGpSZIktQkWU1IHl56WHh1fMepSBnbr3+D6g7mPs3jnUsf/JEmSGnHMT+rg\nGm9U8Y2cS3lr0zxezXsLgOLyEh7IfZwBG+ewq8yNKiRJkg6zMyWpgbRYGhP6jIvOszr1AogKKYDC\nsr0Jz0uSJCnV2JmSdJT63aqqeBUfb1vIqxvf4kDVQQAeXv0kOw/u5GsjLyEzPTOZqUqSJCWNxZSk\nL5SRlsEFw85hYLcB/H7pvQDEa+K8seldFmxfTFF5MeDonyRJ6ngc85N0QjrV60CN6DkMICqkAA5W\nliU8J0mSpGSyMyXphNQf/aupqeGzHUt4Zu1LlFUfAuCB3Ee5eswVnDf0bNJi/j2NJElq/yymJH1p\nsViMswbPoEenHvxx2f0AHKou56m1LzKvYD67ygoBR/8kSVL75l8fS2q2bhldo+MBXfsBRIUUwKGq\nQwnPSZIkKVHsTElqtvqjf/GaOPO3fspLG17nUHU5AA+tepJbJ99I0GdsMtOUJElqFXamJLWItFga\nFww7h9um3BzFSiv38/ulf+a5da9QWV2ZxOwkSZJanp0pSS2q/uhf1/QulFUfYm7Bh8wt+BDwOSpJ\nktR+WExJalH1R/9KyvfxyOqnWb13bXT9813LGdVrOLFYLFkpSpIktQjH/CS1mqzOvZg57UdcMvyC\nKPZuwQf8ZcXDHKg8mMTMJEmSTp6dKUmtKhaLMX3AKcwt+CCKLSvMZeOCzZRW7gcc/ZMkSW2TxZSk\nVnd49K+iuoJn173CR9s+jQopgKp4dRKzkyRJah7H/CQlTKf0Ttw44Vpum3wTndI6RfHZqx4nd88a\n8krymTl3FjPnziKvJD+JmUqSJB2fnSlJCTdj4DTSYunct/JhAIrLS/jjsgcYk5WT5MwkSZJOnJ0p\nSUnRu3Ov6Lh7RjcANpTkRbEK30slSZJSnMWUpKS7bcrNfHX4BaTV+0/SA7mPsmD7IjYWb+av376D\n7z71t+QVb05ilpIkSQ055icpKeq/jwpgQp+xDO85jNmrHgdgf+UBHln9NAO79U9WipIkSV/IzpSk\nlNGva5/ouE/n3gDsPLg7ihWW7QVwowpJkpQSLKYkpaQfTv4+14+/mi7pnaPY/Sse57HVz1Basf8L\nPilJkpQYjvlJShmNR//G9s5hYNf+3LXsPgBqqOHj7Qv5bMeSZKUoSZIUsTMlKaV1yegSHU/tN5EY\nMapqjrzkd+nuFcRr4o7+SZKkhLMzJanNuHL0pVw1+gqeCl9gfd026u/kv8/qvWs5b8jZSc5OkiR1\nNBZTklJaTtYI7r38TrKzu1NUdICqqjjfHnsldy6+K7pn6/7tPLX2hSRmKUmSOiLH/CS1aZeOuDB6\n6e9hn+9azsbizY79SZKkVmVnSlKbdmr/qVw+8mKeWPMcn+9eAcC7BR+weu/aJGcmSZLaO4spSW1O\n413/AL464sKomALYdmBHdFwVr0aSJKmlOeYnqd05f+g5ZMTSo/OHVj3B6r1r3fFPkiS1KDtTktqF\nxt2q8b3HcH/uowAUlRdz19L7CLLHJis9SZLUDtmZktQuZXfpHR13y+gKQFi0PopV1zj6J0mSTo7F\nlKR277bJN3PB0HOJEYtis3OfYOnule76J0mSms0xP0ntUuOxv4l9xzGi5zAeXfM0UDv695cVDzO0\nx+BkpShJkto4iylJHcag7gOi456ZPSit3M/W/dujWHF5CQB5JfnRS4HvmHE7OVkjEpuoJElqExzz\nk9Qh3TblZq4ecwWd0jpFsQdyH+PZdS9TVlWWxMwkSVJbYWdKUodx1I5/2aMZ2mMIf1x2PwDxmjjz\nCubz8baFR33WbpUkSWrMzpSkDu3wTn8A43qPAaC8ujyKLS/MpSpelfC8JElS6rMzJUl1rh5zBTXE\neWLN82w7sAOAtzfPY9HOpcwYMC3J2UmSpFRjZ0qS6hmdNYrvB9c2iO09VMSc/Peic99RJUmSwM6U\npA6u8XNUALHYkfdRXTX6ChbvWtpg179HVj3FDyZ9j/RYus9RSZLUgVlMSdIXGJ89hstHXsQ7+R/w\n4obXACg8tJf/WHIPk/tOSHJ2kiQpmRzzk6TjiMVijO2dE513Se8MQO6eNVEsXhNPeF6SJCm57ExJ\nUiNNjf7Vd9vkm/l893I+2X5kC/XH1zzHDyd9j+qauKN/kiR1EHamJOlL6pbZlZsnXt9go4odB3fy\nm0V/4N3895OYmSRJSiQ7U5J0AprqVg3tMTg6zkzLpDJeyee7V0SxmpqahOUnSZISz86UJLWA2ybf\ndNS7qB4PnyWvJJ+8knxmzp3FzLmzyCvJT1KGkiSppVlMSVIL6NmpB7dNuYnrxl0VxbYf2Mmdi+/i\n9bw5ScxMkiS1Fsf8JKmZmhr9G9XryIYTndM7UV5dwaq9YRSrjFclLD9JktS67ExJUiv50eQfcN7Q\ns4lx5CXAs3MfZ2Xhakf/JElqB+xMSVIr6ZbZle8H32FM1igeWvUkACUV+7hn+YOMzco5zqclSVKq\ns5iSpBbU1Ohf/679ouMemd3ZX3mA9SV5Uay8uiJh+UmSpJbjmJ8kJdBtk2/iq8MvaDD695cVD/Hm\npndZs3e9o3+SJLUhdqYkqZU17lYFfcYyrOdQHlr1BACHqst5ZeNbdEnvnKwUJUlSM9iZkqQk6N+1\nb3Q8oucwoLaoOmz+1gXsrzjgRhWSJKUwO1OSlGTfHf9tqmuqeW7dK+SXbgFgwY5FLNm1jCn9JiU5\nO0mSdCwWU5KUBE1tVPHd8d/mzsV3RecV8UqW7FoWne84sIucrBHkleRH990x43ZyskYgSZISz2JK\nklLQLRNvIHfPapbsWk4NNQA8uuZpPt7+KZP6TEhydpIkCSymJCklDejWj7MG38SpO6dyf+6jUXxj\nyWY2lmyOzivcVl2SpKSxmJKkFNHU6F92l97R8YXDvsLKwlXsOVQUxf684iEuHXEho3qN5K5lfwEc\n/ZMkKVEspiSpjThj4GlcN+5bvJv/AS9ueB2o3QHw1by36ZTWKcnZSZLU8VhMSVIKa6pbNbb36Oh4\nZM/hbC4toCJ+ZNzv/S0f0bdrNnvKityoQpKkVmQxJUlt2PXjr6aGGp5f9yp5+2qfpVq483OW7l7J\nVLdVlySpVVlMSVIb01S36tpx32qwrXplo23VD1aWJSw/SZI6CospSWpnfjjpBlYWrmZxvWLqvpUP\nc8ag6Xy07VPAsT9JklqCxZQktQONu1VnDprOKTun8GDuY0DtC4APF1IA1TXVCc9RkqT2Ji3ZCUiS\nWkffLtnR8fAeQxtce2DlY8zfuoB1RXnMnDuLmXNnkVeSn+gUJUlq0+xMSVIH8N3x3yZvXz7Pr38F\ngJKKfTwRPk+PzO5JzkySpLbLYkqS2qnGo3+xWCw67te1L4Vle9hfeSCKrShcxahewxvcJ0mSjs1i\nSpI6oB9OvIH9lft5ccMb7Dy4C4C3Ns9lQ0ke5w85hwdXPQ64UYUkSV/EYkqSOoimtlTvkdmD3y25\nOzpfX5zHxpLNR302ryQ/2nr9F2f+nOE9hrduspIktQFuQCFJHVj9kb6vDDmLjLQM4jXxKLZqT0h1\n3J3/JElqip0pSRIA5ww+g6+OuIDZuU+QX7oFgNc3zeGT7Qs5tf+Uo+6v361yHFCS1BFZTElSB9bU\n6N/1465uMPpXVF7MvC3zo/O9h4od85MkCYspSVIj9Uf/rhp9BcsLc9m078g7qP68/BFG9RrB6KxR\nR33WbpUkqSPxmSlJ0jGNzx7DHTNmcsP47zSIb9qXz9yCD6LzzfsKqKmpSXR6kiQllZ0pSVIDTY3+\nDes5JDq+ZMR5rCvKo6B0axR7Zt1LLNi+kFP6T05YnpIkJVtSi6kgCLoAdwPXAmXAnWEY/u4Y974E\nXNUo/K0wDF8NgiAGzAL+BugLLAR+HobhqlZLXpI6qDMHnca1Y69i4Y6lzK57HxVAwf5tFOzfFp1X\nxqsAR/8kSe1Xssf8fgucDlwC/Az4VRAE1x3j3knAzcDgej/m1F37a+AO4Od135cHvBEEQbfWS12S\nOrZ+XftEx5eOuJD+Xfs2uH7/ykf4cOsCqmvcWl2S1D4lrTMVBEF34MfAFWEYLgGWBEEwGbgdeLbR\nvZ2BHGBhGIY7mvi6v6K2q/Vq3f1/CxQBX+FIwSVJaqacrBHce/mdZGd3p6joAFVV8QbXT+0/lavH\nXME7m9/npY1vALC/8gBPhs+T1anXUd9nt0qS1B4kszM1DcgEPq4Xmw+cFQRB47wCoAbYeIzvugN4\nrN55DRADslomVUnS8aTF0hiXPSY679+1HwAlFfui2PrijW5UIUlqN5L5zNRgoDAMw4p6sZ1AF2qf\ne9pdLz4RKAEeCYLgIqAA+FUYhm8AhGE4n4Z+TO3PrXH8mNLSYqSlxY5/YwKkp6c1+KeSw3VIHa5F\nami8DuP6juLey+9scE9G+pH/jt425Qb2lBfzXPgqReXFALy44XWWFa7krMHTG3wmI8O1/TL8PZEa\nXIfU4Vqkho64DsksproB5Y1ih887N4pPqLv/LeDXwDXAK0EQnB2G4aL6NwZBcBbwO+C3xxgJbFKf\nPt0bvFslFfTq1TXZKQjXIZW4Fqnhi9ahMH7kWq+sbszoO5kR/QbyP+ce2VsorySfvJIj763q2asr\n2dndWyfZds7fE6nBdUgdrkVq6EjrkMxi6hBHF02Hzw82iv8z8PswDIvqzpcFQTAD+CkQFVNBcE0f\n3AAAIABJREFUEJwDvFH3439+mWT27j2QUp2pXr26sm9fGdXV8eN/QK3CdUgdrkVqOJF16Jc2oEG3\nqqjoAAf3HxlA+OqI8/l0+xL2Vx6IYs+veJNbJn+P7ft38OvP/gDAL878OTm9R7bSz6Tt8/dEanAd\nUodrkRra0zqc6F/yJbOY2gr0C4IgIwzDqrrYIGq3SC+uf2MYhnFqN5SobzUQvdCkbvzvVeBt4Pt1\nnzlh8XgN8XhqzfFXV8ePeshbiec6pA7XIjV82XWoqj7y39bT+k/jG6Mu4/n1r/HRtk8BWLxzORuL\n87lk+PkNPuNaH5+/J1KD65A6XIvU0JHWIZkDjUuBSuDserHzqN2xr8GvfhAEs4MgeKDR508F1tRd\nnwK8TG1H6rthGFa2WtaSpJPSJaML5ww+o0GsqLyY59a/ctS9eSX5zJw7i5lzZzUYDZQkKRUkrTMV\nhuHBIAgeAv4UBMGtwFBqd+W7FSAIgkFASRiGZdQWSk8GQfAetbv/3Uht4fXTuq+7l9pNKf6e2m7X\n4f+Zw5+XJCVJTtYI7r7kN8e8ftXorzNvy3xKK/ZHsQ+2fkyfLtmJSE+SpGZL5pgf1BY/9wDzqN2t\n71dhGD5fd207tYXV7DAMnw+C4GfAL4ERQC7w9TAMN9UVXefWfabxX1veCsxu3Z+CJOlkjM8ey/lD\nz+ahVU+xcs9qAD7bsYQlu5Yzuc+Eo+73HVWSpFSR1GIqDMODwA/rfjS+Fmt0fh9wXxP37aD2nVKS\npDaqW2Y3vj7qq1ExBVAVr2JZ4crovLi8JBmpSZJ0TMnuTEmSOqDjjf791aQbWb03ZOGOz4lT+xjt\nAysf49whZzC578Sj7rdbJUlKho7zRi1JUpvRr2sfbpn0PX405eYoFifO/G2fcv/KR5KYmSRJR1hM\nSZJSVlbnXtHxpD4BMWJU1VRHsZc3vsnqPWupqUmtV1tIkjoGx/wkSSnheKN/38i5jGvGXsnTa19k\nXfFGANYWrWdt0Xp6dep51P2O/kmSWpudKUlSmzGkxyCuHvON6LxrehcA9lWURrGXN77J+uI8u1WS\npFZnZ0qSlLKO163661NuZV/FPt7N/4DNpQXAkW7VgK79jrrfbpUkqSXZmZIktVkZaenMGDiN68df\nHcU6p3cCYFdZYRT7fNcKKuNVCc9PktS+2ZmSJLUrfz31r9hVtps5m99nz6G9ALxb8D5Ldi3jjEGn\nJTk7SVJ7YjElSWpTjjf61ym9E+cPPYeh3YfwuyV3R/Gi8mLe3jwvOo/XxB37kySdFIspSVKb11SB\nFYvFouOrRl/Bop2fs+3Ajig2O/dxzh1yZsJylCS1Pz4zJUlq98Znj+Efzvw7vplzeRTbW17Mq3lv\nR+fu/idJ+rLsTEmS2qWmulUT+oyPCqisTr0oqdgXXXto1RNcOfpy+nbpw78v+SPg6J8k6YtZTEmS\nOqTbptxE7p410XNUhYf28tCqJ5t8AbAkSU1xzE+S1CGlx9I5pd/k6Dy7cxbQ8AXAKwpXEa+JJzw3\nSVLbYGdKktRhNB79yyvJj45vnXwTJRX7eGXDW+wq2w3AW5vnsq54A+cPPYeHVj0JOPonSTrCYkqS\nJCAtlsb0AafQu1NWgy3VN5ZsblB0Hea26pIkiylJUod1vC3Vzx96Dgu2L6IyXhnFlu5ewdAegxOW\noyQpdVlMSZJ0DGcNmsFlIy5k9qon2ViyCYB38t/n0+2LmdZ/SnKTkyQlncWUJEn1NNWtumbMlQ1G\n/0or9zN/24LofH/lAcDRP0nqaNzNT5Kk46g/+nfduKsYnz22wfX7VjzMM2tfYn/F/kSnJklKIjtT\nkiR9CaN6jeDi4efxybaFPLrmGQCqaqp5b8tHfLh1wVH3262SpPbLYkqSpONoavRvUPeB0fGE7HGE\nReuprqmOYm9ueperxnw9YTlKkhLPYkqSpJP0zdFf4/qMq3h23Sus3rsWgJV7VrNyz2pG9Rqe5Owk\nSa3FZ6YkSWoBg7oP5Mqcy6PzjFg6AJv2FUSxsGg98Zo4eSX5zJw7i5lzZzX5DitJUttgZ0qSpGZo\navSvvp9O/Ss2l+Yzr2A+B6vKAHhl45ss3rmU0weemqg0JUmtyM6UJEmtoFtmV76Rcxk/nfrDBvFt\nB3bw8sY3o/P6z1lJktoWO1OSJLWQprpVGWlH/q/28pEXs2jnUvYeKopi9y6fzVeGnMXwnkN5IPcx\nwF3/JKmtsJiSJClBTuk3mStzLuO1jXN4O38eAAerypiT/16D+yrjVUnITpL0ZVlMSZLUiprqVp3S\nf3JUTI3tPZqNJZuI18Sj639a/iBnD57ByJ4jeHj1k4DdKklKRRZTkiQl0bfHfIM+XbJ5Y9M7fLj1\nEwDKq8t5f8vHwMfRfVVxn62SpFRjMSVJUoI11a06a9CMqJia2Gc864o3UlVv3O8vKx/i0hEXMrzH\nMO5a9hcAfnHmzxnew/dYSVKyWExJkpRirsy5nP7d+vLWprnMLfgQgAOVB3lpwxt0SstMcnaSpMPc\nGl2SpBRwuFt19yW/ISdrBD0yuzN9wLTo+rAeQwCoiFdGsXkFH3Gw8mDCc5Uk1bIzJUlSG3BD8B0A\nXtrwBuuKNwDw6fYlLN+9mtMHnhqNCLpRhSQljsWUJEkpqqlnq64ecwV3Lr4rOi+rKosKKYDi8n0J\ny0+SOjqLKUmS2qibJ17HJ9sWs6EkL4rdt/JhRvYczshew/lga+1ugHarJKl1WExJktSG5GSN4N7L\n7yQ7uztFRQc4e9AZzC34kOfXvxrds7m0gM2lBdH5zoO7LaYkqRVYTEmS1IbFYjFGZ42Kzi8edh6b\n9hWQt29zFHtk9VOs2rOGaf2n8EDuY4DdKklqCRZTkiS1cU09W7Vsdy5/XvFQdL541zKW7Fqe6NQk\nqV2zmJIkqR3q1alndDx9wCks251LdU11FHtpw+tMHzCNp9a+ANipkqTmsJiSJKkdatyt2lO2l6fW\nvkjunjUArCveyLrijdH16nj1Ud8hSfpivrRXkqQOoG/XPlwx6tLovHN65wbXZ696nJWFqxOdliS1\naXamJEnqIOp3q8qrK3g9bw7v5L8PQFF5Cfcsf5CcXiOjzSsc/ZOkL2ZnSpKkDqhzeidO7T81Ou+e\n2Q2gwS6Ah6oOJTwvSWpLLKYkSRI/mnwzl4+8mPTYkT8a3LviIZ5b9wpFh4qTmJkkpS7H/CRJ6qAa\nb1IR9BnL8B5DuT/3UQAq45XMLfiQ97Z8RLwmDjj6J0n12ZmSJEmR7C69o+PxvccQIxYVUgDPrH2J\nJbuWs74oj5lzZzFz7izySvKTkaokJZ2dKUmSFGncrdp5cDcvrH+NFYWrANhcWsD9Kx+lW0bXZKUo\nSSnDzpQkSTqmgd3687WRl0TnPTN7AHCwqiyKvbj+NbtTkjokO1OSJOmE/WTqLZRVlTFn83usL8kD\nYH1JHncuvosRPYeRX7oF8NkqSR2DxZQkSfpCjUf/ALpndufOxXcB0Cktk4p4ZVRIAazeu5YRPYeS\nnpae0FwlKZEspiRJ0kn56dS/YnNpPu/kv09Z3bupXst7m/lbFzC13yTmb1sA2K2S1P5YTEmSpC+t\ncbdqYt9xjM4axX9+fm8UK6nYFxVSAHsOFVlMSWpXLKYkSVKLyEzLjI6/PeZKVu0NWVu0Poo9mPsY\nS3YuZXLfCTwePgfYrZLUtllMSZKkFtG4W3XZyAv5bPsSHlr9ZBRbVpjLssLc6Lz+O6wkqa1xa3RJ\nktRq+nfrFx2fOXA6XdK7NLh+/8pHmbP5PVbtCX0JsKQ2x86UJElqNY27VWVVZby84S0+2PoxUPtc\n1YsbXic95q5/ktoeO1OSJClhumZ05cxB06PzoT0GA1BdUx3Fnl77Iqv3rKWmpibh+UnSl2FnSpIk\nJc33g2vJTMvgtby3WV64CoD80i3ctew+BnTtz66y3YAbVUhKTRZTkiQpoZp6CfDlIy+JiqmuGV0p\nqyqLCimAD7Z+TJeMzhyqKo9eFmyBJSnZLKYkSVLS1S+wKqorWbB9IW9umktJxT4APtuxhM92LGFg\nt/7JTFOSGvCZKUmSlFI6pWdywbBz+dGUm6NYWt0fWXYePNKt+nDrJxyoPEheSb47AUpKCjtTkiQp\nJaXFjvyd79+cciu7ywr5YOsn7Dy4C4BPdyxm2e5cpg84JVkpSurgLKYkSVJKOvrZqoCRvYZHz0wB\nHKo+xMfbP4vO91fsT2CGkjo6iylJktQm3TThOhbvXMaaonVR7N4VDzGt/2TG9h7Ns+teBtyoQlLr\nsZiSJEltRuNu1blDzuSDLZ/w1NoXAKihhqW7V7J098ronqp49VHfI0ktwQ0oJElSmza859Do+PSB\np9E9s1uD6/fnPsrH2xayoXiTG1VIalF2piRJUrtx0bCvcPOE63h783u8vmkOAKUVpTy25hmyO/dO\ncnaS2huLKUmS1KY19RLgSX2DqJjq26UPew7tpai8OLqeu2cNI3oOJb90qy8BltRsFlOSJKndqV9g\nxWviLNq5lBfXvx69BPiNTe+wYPsiThswNZlpSmrjfGZKkiS1a2mxNM4cNJ3bptzUIF5UXszcgg+j\n80NVhxKdmqQ2zs6UJEnqENJj6dHxVaOvYOnuFeSXbolif17xENP6T2Hhzs8Bx/4kHZ/FlCRJ6hAa\nP1t1+ciLeH/Lxzyz7iUAKuKVUSEFUHSo2GJK0heymJIkSR1SLBZjZK/h0fm43qNZV7wxOr8/91GW\n7JrKpL4TeGzNM4DdKkkNWUxJkqQOq3G3atGOpTy46vHo/PPdK/h894rovKamJqH5SUptFlOSJEl1\n+nbtEx3PGHAqK/esory6Iordn/soFww9hyE9BvOn5Q8C8Iszf87wHsOP+i5J7Z/FlCRJUhMuHn4e\nNwTf5uUNb/LhtgUAFJeX8PLGN4kRi+6zWyV1XBZTkiRJdZp6AfBZg0+PiqlhPYawZf82ajhSQP1l\nxaN8beQlDOg2gP/8/E+Az1ZJHYXFlCRJ0gm6IfgO3TK78kbeO9HOf3sPFfNE+DxdM7omOTtJiWYx\nJUmS9AWa6lZdOOwrUTHVv2tfdpftoayqLLo+Z/N7XD32Cg5WlnHn4rsAu1VSe2QxJUmSdBJum/J9\nDlQe4tWNb7FpXwEAywpXsrwwlzG9c5KcnaTWZDElSZL0JeVkjeDey+8kO7s7RUUHqKqK0yW9S9SF\nSoulEa+Js77ee6vyS7fYmZLaGYspSZKkFvaTKbewsWQTH2z9ONpa/em1L7J671pOH3gaD+Y+Bjj6\nJ7V1FlOSJEktoPGzVaf0n8TEPuP5/dI/R7EVhatYWbg6GelJagVpyU5AkiSpveqU3ik6PnPgdDLS\nMhpsq/7B1o/ZX3GAvJJ8Zs6dxcy5s8gryU9GqpKawc6UJElSAlww7Fy+OfprPBE+x+q9awH4bMcS\nlu5eybR+k5OcnaTmsJiSJElqJU1tq35lzuVRMQVQUV0RbbMOsLtsDzlZI8gryXdbdSnFWUxJkiQl\nyQ8mfo/lhbks270yij206gnmFXzAuN5jkpiZpBNhMSVJkpRAjbtVZw+ewWfbl/DQ6iejWH7pVvJL\nt0bnuw4W2q2SUpAbUEiSJCVZ/279ouNLhp/P8B5DGlx/ePWT3LPsAbbu357o1CR9ATtTkiRJKWT6\ngGlcO+5bfLp9CQ/X61at3LOGlXvWJDEzSY1ZTEmSJCVZUxtVDKjXrTp70OksK1xJWdWhKPb8+le5\neeL1HKwsc/RPShLH/CRJklLceUPP5p/P/R+cP/ScKLaxZBP/8unvmFfwYRIzkzo2O1OSJEkpqKlu\n1VmDZvDh1k8ASI+lUV0TZ/GuZdH1w50rN6qQEsPOlCRJUht06+SbOLX/lAaxPy1/kNm5T1BQbydA\nSa3HzpQkSVIb0bhbddqAqby/5WOeXvsiANU11Szc+XmDlwCXV5cDdquk1mBnSpIkqQ0b0XNYdHxq\n/6l0Se/S4Pqfls/m6bUvsvdQUaJTk9o9iylJkqR24tIRF/Jv5/2Sr4/8ahSrjFfy/paPeSD3sSRm\nJrVPjvlJkiS1YU1tVDGl30Te3PwuABP7jGdt0Qaqa6qj68+sfYnvBldTU4Ojf9JJsJiSJElqx67M\nuZwfTOzNKxvf4pPtCwHYXFrAbxfdxbjeo5OcndS2WUxJkiS1M011q74y5KyomOqUlklFvJJ1xRuj\n63vK9tqZkr4kiylJkqQO5idTbyEsWs97BfOpqhv/e3DV4ywvzGVqv0nMXvUE4OifdDwWU5IkSR1A\n427VpL4BY7Ny+NOK2VFs8a5lDV4CXFNTk8gUpTbHYkqSJKmD6tGpR3Q8fcA0VhTmUhmvimKzVz3B\nKf0mM2/Lh4CdKqkxiylJkqQOqnG3qqR8H8+teyXqTu05tDcqpAA27ctnRM+h5JdudRdACYspSZIk\n1cnq3IuLh58fFVODug1gx8Fd0fVn173M25vnuQugVMeX9kqSJKlJN0/8LrdMvKFBbF9FaYPnqhbv\nXEpZVRl5JfnMnDuLmXNnkVeSn+hUpaSwMyVJkqRIU9uqH/btMd9g874Clheuil4CPG/LfD7a/hmT\n+gSJTFNKCUktpoIg6ALcDVwLlAF3hmH4u2Pc+xJwVaPwt8IwfLXu+veBfwEGA28BPwnDsLC1cpck\nSepoxvYezWUjL2L1nnXctewvUbyiuoKlu1dE5/mlWxjVazixWCwZaUoJk+zO1G+B04FLgJHAQ0EQ\nbA7D8Nkm7p0E3Ay8Wy9WBBAEwZnA/cDfAEuB3wOzgW+2WuaSJEkdQFOdqi4ZnaPjmyZcz9qiDSze\ntZR4TRyAp9e+yOKdy5g+4BSeWfcS4EYVap+SVkwFQdAd+DFwRRiGS4AlQRBMBm4Hnm10b2cgB1gY\nhuGOJr7uduDpMAwfrrv/B8DmIAhywjDMa82fhyRJUkc2uPtAzh1yBqcPnMY9yx+M4htK8thQcuSP\nYb6zSu1RMjegmAZkAh/Xi80HzgqCoHFeAVADbDzGd50NfHD4JAzDAiC/Li5JkqQWdLhbdfclv4m6\nTd0zu0fXLxh6Lj3qnQM8kPso7+S/T25h6EYVajeSOeY3GCgMw7CiXmwn0AXoC+yuF58IlACPBEFw\nEVAA/CoMwzfqfde2Rt+/Exh2osmkpcVIS0uNud709LQG/1RyuA6pw7VIDa5D6nAtUoPr0FBG+pE/\nR507dAbXBVfywrrXmVfwEQBF5SW8sP410mJHfr3S0yAj4+R//VyL1NAR1yGZxVQ3oLxR7PB550bx\nCXX3vwX8GrgGeCUIgrPDMFz0Bd/V+HuOqU+f7in3kGSvXl2TnYJwHVKJa5EaXIfU4VqkBtehVnb2\nJJ7OuadB7NK0r0TF1MisoWwu2Ro9VwXwWPgc3z/lanp17sk/vvtbAP710lmM65vTrBxci9TQkdYh\nmcXUIY4udg6fH2wU/2fg92EYFtWdLwuCYAbwU2DRF3xX4+85pr17D6RUZ6pXr67s21dGdXX8+B9Q\nq3AdUodrkRpch9ThWqQG1+H4SveVRcffD75D54zOvLZhDot21r6nasu+7fx2/p/o17VPg88UpR0g\nr3gzv/7sDwD84syfk9N75DH/d1yL1NCe1iE7u/vxbyK5xdRWoF8QBBlhGFbVxQZRu0V6cf0bwzCM\nU7dzXz2rgcn1vmtQo+uDgO0nmkw8XkM8nloPRlZXx6mqatv/IrYHrkPqcC1Sg+uQOlyL1OA6HNvw\nHsOP2gnwomHnR8VUz8welFbup7Bsb3R9zqYPOH/oOQ3GAauqa07o19i1SA0daR2SWUwtBSqp3SRi\nfl3sPGp37Gvwqx8EwWwgHobhbfXCpwKHX2iwoO6zs+vuHw4Mr4tLkiQpBf14yg/YVbab1/LmUFxe\nAsDiXctYvGsZXTO6RPcdHg3MK8nnzsV3AW61rtSQtGIqDMODQRA8BPwpCIJbgaHAHcCtAEEQDAJK\nwjAsA14GngyC4D1qd/+7kdri6ad1X3cP8F4QBJ8AC4H/BF51W3RJkqTU0vi9VWOzcxjYbQD/vuSP\nAGTEMqiqqaKs6lB0z30rH+GiYV9haI8hCc9X+iLJfmnv31NbCM2jdre+X4Vh+Hzdte3UFlazwzB8\nPgiCnwG/BEYAucDXwzDcBBCG4SdBEPw18E9AH+Bt4CeJ/IlIkiSpeeqP9M089UeUVR3io22fkrtn\nDQD7Kkp5eeObpCX1rT7S0ZJaTIVheBD4Yd2Pxtdijc7vA+77gu+aTd2YnyRJktqmzLRMxvcfQ69O\nPaNianjPoRSUbiXOkSdBnlr7AteNu4r0WHo0+veLM3/O8B7Dk5K3OqZkd6YkSZLUwTUe/Wvse+Ov\noWtGF17Pm8PiXbWbVxSUbuU/ltzDiJ4n/FpRqcVZTEmSJCnlNFVgXTz8/KiY6pLemUPV5eSXbomu\nr9m7niHdhpBfutWNKpQQFlOSJElqc34y9RbySjYzJ/89yqsrAHhx/RvMy5/PpL4TkpydOgqf4pMk\nSVKb0zm9M1fkXMpPpjR89L6kopRPti+Mzg+/wyqvJJ+Zc2cxc+4s8kryE5qr2i87U5IkSWoTmhr9\n65LROTr+zrgrWb1nHav3ro1is1c9zso9q5jab3LC8lTHYTElSZKkdmF89mi+OvxCPt+1gvtWPhLF\nF+1cyuKdy46635cA62RZTEmSJKnNyskawb2X30l2dneKig5QVRWnd+es6Ppp/U9hRWEuVTXVUezV\njW/xnXHfTEa6amcspiRJktRufXXEBVw77ps8s+5llu1eCcCaonX822f/wZisnKPut1ulL8NiSpIk\nSe1KU89WXTbioqiYyohlUFVTxYaSvOh6QelWRvXyhb/6ciymJEmS1KH8ZOotbCjJ472C+VTEKwF4\nau0LLNz5Oaf2n5rk7NSWWExJkiSpQ+me2Y2rx1zB+N5juGvZfVF8Y8kmNpZsis6ra6od+9MXspiS\nJElSu9f0tupdouMLh57Lkt3LKa3YH8X+suJhpvWfkrAc1fb40l5JkiR1eGcMms4/nfMPfHX4BVFs\nf+UBPtr2aXS+48AuwBcA6wg7U5IkSeqQmupWnTbgFN4t+ACAkT2Hs7m0ILr26Jqn+Xj7p0zqEyQ0\nT6UuiylJkiSpCdePv5rCsj3MXvVEFPs/7d15uFVlvcDx7wERRwZBc8IBxR8oaJoDCU6Y5piolT5d\nb+htumXjU3l79KaWDZZ1n2y4apZp10ytzKkiTcTQ0hQQBeFFGQRUQGYZZTj3j7XOdnM45wCLc9Y5\ncL6f5+Fhrfdde6+1949z3v3j9653T138KlMXv1rZX7Z6OeCS6u2V0/wkSZKkRvTcsUdl+6R9B9Fj\nh93W67/lxdu5bfxvmPXW62VfmtoAK1OSJElSrv7Uv+p7oo5515F8sM+5PDZjFPdP+RMA62rXMXru\nOEbPHVc5buWaVZXHWq3atplMSZIkSY1o6L6qg7sdWNk+ao/DmbhgMivWrKy03fTCbRyx+2Hs38Xk\naVvnND9JkiSpoCG9TuTbg/6b0/c/pdK2tnYtY+a+wB9febjStmDlQsCVALc1JlOSJEnSFujccXsO\n73lYZf+oPY5gl047r3fMbRN+w41jbmHSgpfLvjy1IKf5SZIkSZuhoal/1Yb0OoFLD72YETOfrNxb\nBTB50RQmL5pS2V+8agngvVVbM5MpSZIkaQtt7N6qwXsP5KUFqTLdD+DW8b+mf4++9Ol20AbPZ4K1\ndTCZkiRJklrYwL2O5qIYyuMzn+S+qnupxs+fxPj5kyr7b729tDUuTwWZTEmSJEktoKFqVe+uB1S2\nB+55NC8tSCx5+61K2y0v3k6/3Q7hoK4HUp/VqrbHBSgkSZKkVjB4n4F86/grObf3Geu1T1wwmYen\n/bWyP3f5m2VfmjaRlSlJkiSpJA1Vq6L7wTyUb793r2OYtOBlFq5aVOn/9cR7GDFzFId03/DeKrUu\nK1OSJElSGzFo7+P45vFf40N9zluvfdbS1xkxc1Rlf77fW9UmmExJkiRJbUiHmg7s36VXZf/UXiex\n3677rHfM7RPu4o6X7mbhykX1H64SOc1PkiRJakUb+96qI/cYwAV9zuZfb4zhjol3A1BLLf+aPYZn\nZ4/d4HgXqiiPlSlJkiRpK7D7Tj0r20fs3p+ONR2ppbbS9sCUPzN54RRqa2sberhagJUpSZIkqY3Z\nWLXqtP1O5sKDz+HeyQ8wfv5EAF5eNJUbx95Czx122+B4q1Utw8qUJEmStBXqseNunHHAqZX9HTp2\nBmDeygWVtpGznmTeigUbPFbNw8qUJEmStBXYWLXqU4dfypvL5/HIjJHMWzEfgOfmPM/oOePW+7Lg\nOlartpyVKUmSJGkb0KlDJwbtcxzD+l1caauhhlpqmbJ4WqUtLXyFdbXrWuMStzlWpiRJkqStVEPV\nqpqamsr2JwZ8lOlLZjBq1j9ZsXYlAA9NHc7oOc9z1B5HlHqt2yKTKUmSJGkb1WX7XTnvoDPpt1tw\n49ibK+2vL5vN69NmV/bXrlsLOPVvc5lMSZIkSduQhqpVnTq887H//fsP4bk5zzO/aqGKn4+/gyG9\nTtzgy4HVNJMpSZIkqR0Z0PNQzj7wNP487W8Mf/UxAJatXs5DU4ezXc2G6YHVqsaZTEmSJEnbuIaq\nVf179qskU/vtui8z3prFmto1lf4Hpw7ngoPPLvU6tzYmU5IkSVI79+FDhtKpw3Y8OHU4E+ZPAmDy\nwle4/tkbOaDL+pUoK1XvcGl0SZIkSey7696cecD7Kvvb5fdZTV8yo9I2ccFk1tauLf3a2iorU5Ik\nSVI7tNEvAR4wjGmLX2XEzFGsXLsKgD9Ne4QnZu28wbHV1aqvHfs5eu3Sq2Uuuo2xMiVJkiRpAztu\ntyNn9z6dTw4Ytl770tXLKtuPvvo4s5fNKfvS2gwrU5IkSZKAhqtV23fcvrI99KCzGD1nHDOXvgbA\nuHkTGDdvwgb3VUH7uLfKypQkSZKkTXJwt95cFOdX9jvWZOlE9X1Vz88dz9tr3y792lqeSjRAAAAO\nBklEQVSDlSlJkiRJjapfrZq2+J3E6ZMDhjF9yUxGznqKFWtWADB8+uOMeu0Z+vfoV/q1ls3KlCRJ\nkqRCdu60M+f0Pp1P1buvatnq5Twze3Rlv+6+qmmLZ3D5iCu4fMQV6yVlWysrU5IkSZI2WUP3VdUt\now5wcd+hTJiXeHHexErbnZN+xz/eeJb+Pfpu8Hxb871VJlOSJEmSms0BXXpxwt7HM2bOC/xywp2V\n9qmLpzN18fTK/qp8ufWtmdP8JEmSJDW77jt0q2yftM/xdO/cbb3+m1+4nXsnP8DClYvKvrRmY2VK\nkiRJ0hY5sOt+3HL6D+jefWcWLlzGmjXr1us/Zs+juLDPuTw64wkemjocgNXrVvPErKd4YtZTrXHJ\nzcLKlCRJkqQW17FDR6L7wZX9vt370KFm/XTkja3sC4CtTEmSJElqdg0tVFHtnN7vp1vnLjw4dTj/\nmj0GgE4dOpV1ec3CypQkSZKkVtF9h26cuM/xlf2eO+7Wilez+axMSZIkSSrFxqpVWxsrU5IkSZJU\ngJUpSZIkSa1ma65WWZmSJEmSpAJMpiRJkiSpAJMpSZIkSSrAZEqSJEmSCjCZkiRJkqQCTKYkSZIk\nqQCTKUmSJEkqwGRKkiRJkgowmZIkSZKkAkymJEmSJKkAkylJkiRJKsBkSpIkSZIKMJmSJEmSpAJM\npiRJkiSpAJMpSZIkSSrAZEqSJEmSCjCZkiRJkqQCTKYkSZIkqQCTKUmSJEkqwGRKkiRJkgowmZIk\nSZKkAkymJEmSJKkAkylJkiRJKsBkSpIkSZIKMJmSJEmSpAJMpiRJkiSpAJMpSZIkSSrAZEqSJEmS\nCjCZkiRJkqQCTKYkSZIkqQCTKUmSJEkqwGRKkiRJkgowmZIkSZKkAkymJEmSJKmAmtra2ta+BkmS\nJEna6liZkiRJkqQCTKYkSZIkqQCTKUmSJEkqwGRKkiRJkgowmZIkSZKkAkymJEmSJKkAkylJkiRJ\nKsBkSpIkSZIKMJmSJEmSpAK2a+0LaK8iojMwGvhsSmlk3nYgcCvwXuBV4IsppUeqHvM+4EdAb+Bp\n4OMppaklX/o2pZE4DAT+BzgceA24IaX0i6rHGIcW0FAsqvq6Ai8BV6WUbq9qNxbNrJGfif2Am4GT\ngdeBK1NK91Y9xji0gEZicQLZe90XeBn4Skrpb1WPMRbNJCL2AW4EhgArgHvI/u2vdLwu10Zi4Zhd\nkqbiUHVMuxuvrUy1gojYAfgtcFhVWw1wPzAbOBr4P+CP+YeYug8z9wO/Ao4B3gTuzx+nAhqJw57A\nX4CRwJHANcBPIuLsvN84tICGYlHP94C96z3GWDSzRn4mtgP+BKwm+5m4AbgzIvrn/cahBTQSiz2A\nh4C7gQHAvcADEbFv3m8smkn+nv0e2Ak4AbgYOBe4zvG6XBuJhWN2SZqKQ71D2914bWWqZBFxKHAX\nUP8f0CnAQcDxKaVlwMSIOBX4D+Ba4OPAcymlH+bPcxnZL/KTyH6JaDM0EYehwOyU0pX5/ssRcQrw\nEbIPlMahmTURi7r+wcCpZO9zNWPRjJqIw1lAL2BQSmkJkCLiTOB4YDzGodk1EYtBwJqU0g35/nci\n4svAQLIPOcai+QTZ+7pnSmkOQERcDfyA7MO743V5morFFByzy9JUHL6a77fL8drKVPlOAh4nmxpQ\nbSAwJv/FXOfJquMGAn+v60gpLQfGNPA82jSNxWE4cFkDx3fN/zYOza+xWNRNc7oVuBxYVa/bWDSv\nxuJwMvBYnkgBkFIamlL6eb5rHJpfY7GYD/SIiAsioiYihgK7Ai/m/cai+cwGzqj70FilK47XZWsq\nFo7Z5WkqDu16vLYyVbKU0k112xFR3bUX2b0I1eYA+25ivzZDY3FIKU0Hplf17UFWyr42bzIOzayJ\nnwmAK4GxKaVHGugzFs2oiTj0BqZHxPXAvwPzgGtSSvfn/cahmTURi1HAz8iqUOuAjsBlKaWU9xuL\nZpJSWgT8tW4/IjoAnwUew/G6VE3FwjG7PBv5mYB2PF5bmWo7dmLDTH4V0HkT+9XMImJH4A9k/xtz\nS95sHEqST3X6T+BLjRxiLMqxC3Ap0J1sfvyvgd9HxNF5v3Eozy5kye21wLHAt4EfR0TfvN9YtJzv\nA0cBV+F43dqqY1HhmF26Shza+3htZartWAn0qNfWGVhe1V//H11nYFELX1e7FBG7AA8AhwCD85I0\nGIdS5Del3gpc3cCUgjrGohxryKaXfTqltA4Yk68o90ngOYxDma4AalJK38z3x0TEccAXgE9jLFpE\nRHwP+CJwUUppfEQ4XreS+rGoanfMLlF1HIAJZNNc2+14bWWq7XgN2LNe257AG5vYr2YSEV3IStn9\ngSEppZeruo1DOfYjW+DghxGxNCKW5m03R8Rf8mOMRTneACbniVSdRLYoBRiHMr0HGFevbSywf75t\nLJpZRPwE+DJwSUrpD3mz43UraCQWjtklayAO7X68NplqO54GjsrL1HUG5+11/YPrOiJiJ7JlQJ9G\nzSafA3wf2VSak1JKE+odYhzK8RrQB3h31Z/XgavJVgUCY1GWp4H+EdGxqq0f79ynYBzK8zpwaL22\nvsC0fNtYNKOIuIZs6tLFKaW7q7ocr0vWWCwcs8vVSBza/XjtNL+24wlgJvCriLiO7N6EY3lnlZrb\ngK9GxNfIvmfkarIBdGT5l7pN+xjZMvUfABbl32EB8HZKaQHGoRQppTXAK9VtEbEGmJtSei1vMhbl\n+C3Ze/u/EXEDcDpwJnBc3m8cyvML4MmI+BLZlKYPAGeQfSgBY9FsIqIf8HXgu2TvefX/qjtel2gj\nsTgXx+xSNBWHlFK7Hq+tTLURKaW1wHlkK56MBi4Bzk8pzcj7pwMXkP2yfpZsvvbQlFJtq1zwtutC\nsp+Lh8nKz3V/7gPj0JYYi3LkS6KfRlYBGU92f85FKaUxef90jEMpUkpPk73Xw4AXyFZXPKvuf+ON\nRbM6j2y1xP9m/bHgDcfr0jUaCxyzy9RUHJq0rcehprZ2m3gdkiRJklQqK1OSJEmSVIDJlCRJkiQV\nYDIlSZIkSQWYTEmSJElSASZTkiRJklSAyZQkSZIkFWAyJUmSJEkFmExJkiRJUgEmU5KkdiEido6I\ny6v2b4+IkS18zsMi4uyWPIckqfWYTEmS2ouvAF+t2v8CcEELn/Nh4JgWPockqZVs19oXIElSSWqq\nd1JKi8s+pyRp21JTW1vb2tcgSdrGRUQt8DHgI8AgYBFwU0rpm5vxHF2BG4Dzge2B0cAVKaXn8v6d\ngB8D5wDdgInAdSml+yLiWuCaqqc7ELgWOCCldHJEnAz8DfgQcD2wH/BPYBhZNeujwNvAjSmlb+fn\n6wx8C/ggsA+wNH+Oy1NKb0bEdGD//HxP5OfZDbgO+ADQExgDXJVSGpk/57XAKcAbwFnAHcAXge/k\n790ewDTgRymlmzf1vZMktQyn+UmSyvJD4HbgUOAnwDci4sRNeWBE1AB/BnqTJUvHAU8DT0XEkflh\n1wGHkyUh/YC/APdExAHAD/LzzwL2AmY2cJqOwFXAvwFDgHcD44BVwLHAzcC3ImJAfvz3gQuBS4E+\nZInXqflzQDa9b1Z+3gsioiPwCHACcAnwHuBF4JGIqJ4KeCIwOz//j4HPkCV5FwGHAD8FboqIwZvy\n3kmSWo7JlCSpLHeklO5MKU1LKX2HrDo1aBMfOwR4L/DhlNIzKaVJKaUryRKqL+THHAS8BUxNKU0D\nvk6WeC1MKS0lqxytTSnNTimtbeQ8X08pPZdS+ifwGLCMrPo1Gfhufkz//O9ngWEppSdSSq+mlB4C\nHgUGAKSU3gTWAktTSguA08kSqI/kj3kJ+DQwnvXv5QK4JqU0NaX0cv66lgHT8vP8FDgNmLyJ750k\nqYV4z5QkqSwT6+0vJpuutymOIrv/aEZEVLd3BnbIt78HPAS8GRHPkFWB7trMe6NeqdquS2BqAVJK\nK/Jzd87374yI90XE9WQVo75AAKMaee4BwOKU0vi6hpRSbUT8HXh/1XFz613zz8imNs6KiLFkCdvd\nKaW5m/G6JEktwMqUJKksqxpo29QFGjoAS8imvlX/6Ud2zxJ5NakX2dS7MWTT7iZGxKmbcY2r6+2v\na+zAiLgZuIcsIXyQ7J6m3zbx3I291g71zruiujOvTh0MnAGMIKu2jY2IYU2cS5JUAitTkqStwXig\nC7B9Pj0OgIi4ley+pp9GxDeAJ1NKDwIPRsSXgAlkydVjQLOtuBQRPYBPARenlO6pau9HNp2wTvU5\nXwC6RkT/uupUfi/YYOAlGhERnyerVt1NVpW6IiIeJbuH6o5mekmSpAJMpiRJW4PhwPNkC0p8nmwB\nic8Al5HdiwTZ4hSXRMQngClki1TsD/wj718KdI+IQ8hWxNsSS8imKZ4XEaOBHYHPkU1HfKbquKVA\nn4h4F9m0w+eBuyLic8Bc4LNk0/8+08S5dgeujojlZIljX7Kq3I1b+BokSVvIaX6SpDYvXzDiNOA5\n4F6yKs+JwPkppRH5YZeTVaDuJFuc4Trgv1JKd+b9fyBbcvwFsqRnS65nNdkKe/3JVuQbDuwEXAkc\nmi/TDu8s1f5I/hpOB8YCf8xfS3/g1JTS002c7hvAL8lWQJwM/By4iXcWxJAktRK/Z0qSJEmSCnCa\nnySpVUVEd/IV8prwZhPLmUuS1CpMpiRJre13ZF9225R+wKQSrkWSpE3mND9JkiRJKsAFKCRJkiSp\nAJMpSZIkSSrAZEqSJEmSCjCZkiRJkqQCTKYkSZIkqQCTKUmSJEkqwGRKkiRJkgowmZIkSZKkAv4f\n8zWsN9ovdAwAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1deb43de860>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "cvresult = pd.DataFrame.from_csv('1_nestimators.csv')\n",
    "\n",
    "cvresult = cvresult.iloc[100:]\n",
    "# plot\n",
    "test_means = cvresult['test-mlogloss-mean']\n",
    "test_stds = cvresult['test-mlogloss-std'] \n",
    "        \n",
    "train_means = cvresult['train-mlogloss-mean']\n",
    "train_stds = cvresult['train-mlogloss-std'] \n",
    "\n",
    "x_axis = range(100,cvresult.shape[0]+100)\n",
    "        \n",
    "fig = pyplot.figure(figsize=(10, 10), dpi=100)\n",
    "pyplot.errorbar(x_axis, test_means, yerr=test_stds ,label='Test')\n",
    "pyplot.errorbar(x_axis, train_means, yerr=train_stds ,label='Train')\n",
    "pyplot.title(\"XGBoost n_estimators vs Log Loss\")\n",
    "pyplot.xlabel( 'n_estimators' )\n",
    "pyplot.ylabel( 'Log Loss' )\n",
    "pyplot.savefig( 'n_estimators_detail.png' )\n",
    "\n",
    "pyplot.show()"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.5.2"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
